Spring中Properties相关注解

1、@PropertiesSource注解

这是Spring中的注解,用于读取属性文件,默认读取classpath下的文件。

如在classpath路径下的a.properties中:

desc="is a property"

通过Value注解可以去到属性:

@Component
@PropertySource("classpath:a.properties")
public class Config {

    @Value("${desc}")
    String desc;

  
    public void print(){
        System.out.println(desc);
    }
}

也可以通过@PropertiesSources注解一次读取多个配置文件。

2、@ConfigurationProperties注解

这是SpringBoot中的注解,使用这个注解需要一个依赖:

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>

在application.yml下有以下属性:

这在Bean中其实是可以直接拿到的,因为该文件自动被SpringBoot加载。

server:
  port: 8099


com:
  other: "通过注解获取"

通过@Value注解是可以直接拿到属性的,如☆处直接拿到yml的数据。

而◆处不需要注解,通过@ConfigurationProperties(prefix = "com")注解拿到other数据。

当然必须要有该属性的set方法,所以这适合在JavaBean中使用。

@Component
@PropertySource("classpath:a.properties")
@ConfigurationProperties(prefix = "com")
public class Config {

    @Value("${server.port}") //☆
    String port;

    @Value("${desc}")
    String desc;

    String other;//◆

    public String getOther() {
        return other;
    }

    public void setOther(String other) {
        this.other = other;
    }

    public void print(){
        System.out.println(port+desc+other);
    }
}

posted @ 2020-10-20 09:52  cgl_dong  阅读(532)  评论(0编辑  收藏  举报