Spring Boot读取配置的几种方式


读取application文件

在application.yml或者properties文件中添加:
info.address=USA
info.company=Spring
info.degree=high

@Value注解读取方式

  1. import org.springframework.beans.factory.annotation.Value;
  2. import org.springframework.stereotype.Component;
  3. @Component
  4. publicclassInfoConfig1{
  5.    @Value("${info.address}")
  6.    privateString address;
  7.    @Value("${info.company}")
  8.    privateString company;
  9.    @Value("${info.degree}")
  10.    privateString degree;
  11.    publicString getAddress(){
  12.        return address;
  13.    }
  14.    publicvoid setAddress(String address){
  15.        this.address = address;
  16.    }
  17.    publicString getCompany(){
  18.        return company;
  19.    }
  20.    publicvoid setCompany(String company){
  21.        this.company = company;
  22.    }
  23.    publicString getDegree(){
  24.        return degree;
  25.    }
  26.    publicvoid setDegree(String degree){
  27.        this.degree = degree;
  28.    }
  29. }

@ConfigurationProperties注解读取方式

  1. @Component
  2. @ConfigurationProperties(prefix ="info")
  3. publicclassInfoConfig2{
  4.    privateString address;
  5.    privateString company;
  6.    privateString degree;
  7.    publicString getAddress(){
  8.        return address;
  9.    }
  10.    publicvoid setAddress(String address){
  11.        this.address = address;
  12.    }
  13.    publicString getCompany(){
  14.        return company;
  15.    }
  16.    publicvoid setCompany(String company){
  17.        this.company = company;
  18.    }
  19.    publicString getDegree(){
  20.        return degree;
  21.    }
  22.    publicvoid setDegree(String degree){
  23.        this.degree = degree;
  24.    }
  25. }

读取指定文件

资源目录下建立config/db-config.properties:
db.username=root
db.password=123456

@PropertySource+@Value注解读取方式

  1. @Component
  2. @PropertySource(value ={"config/db-config.properties"})
  3. publicclassDBConfig1{
  4.    @Value("${db.username}")
  5.    privateString username;
  6.    @Value("${db.password}")
  7.    privateString password;
  8.    publicString getUsername(){
  9.        return username;
  10.    }
  11.    publicvoid setUsername(String username){
  12.        this.username = username;
  13.    }
  14.    publicString getPassword(){
  15.        return password;
  16.    }
  17.    publicvoid setPassword(String password){
  18.        this.password = password;
  19.    }
  20. }
注意:@PropertySource不支持yml文件读取。

@PropertySource+@ConfigurationProperties注解读取方式

  1. @Component
  2. @ConfigurationProperties(prefix ="db")
  3. @PropertySource(value ={"config/db-config.properties"})
  4. publicclassDBConfig2{
  5.    privateString username;
  6.    privateString password;
  7.    publicString getUsername(){
  8.        return username;
  9.    }
  10.    publicvoid setUsername(String username){
  11.        this.username = username;
  12.    }
  13.    publicString getPassword(){
  14.        return password;
  15.    }
  16.    publicvoid setPassword(String password){
  17.        this.password = password;
  18.    }
  19. }

Environment读取方式

以上所有加载出来的配置都可以通过Environment注入获取到。
  1. @Autowired
  2. privateEnvironment env;
  3. // 获取参数
  4. String getProperty(String key);

总结

从以上示例来看,Spring Boot可以通过@PropertySource,@Value,@Environment,@ConfigurationProperties来绑定变量。

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Spring Boot读取配置的几种方式

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多