Spring Boot读取配置的几种方式

读取application文件

在application.yml或者properties文件中添加:

info.address=USA

info.company=Spring

info.degree=high

1.@Value注解读取方式


import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;



@Component

public class InfoConfig1 {


   @Value("${info.address}")

   private String address;


   @Value("${info.company}")

   private String company;


   @Value("${info.degree}")

   private String degree;


   public String getAddress() {

       return address;

   }
   public void setAddress(String address) {

       this.address = address;

   }

   public String getCompany() {

       return company;

   }

   public void setCompany(String company) {

       this.company = company;

   }

   public String getDegree() {

       return degree;

   }

   public void setDegree(String degree) {

       this.degree = degree;

   }
}

2.@ConfigurationProperties注解读取方式

  1. @Component
    
    @ConfigurationProperties(prefix = "info")
    
    public class InfoConfig2 {
    
    
    
       private String address;
    
       private String company;
    
       private String degree;
    
    
    
       public String getAddress() {
    
           return address;
    
       }
    
    
    
       public void setAddress(String address) {
    
           this.address = address;
    
       }
    
    
    
       public String getCompany() {
    
           return company;
    
       }
    
    
    
       public void setCompany(String company) {
    
           this.company = company;
    
       }
    
    
    
       public String getDegree() {
    
           return degree;
    
       }
    
    
    
       public void setDegree(String degree) {
    
           this.degree = degree;
    
       }
    
    
    
    }

     

读取指定文件

资源目录下建立config/db-config.properties:

db.username=root

db.password=123456

3.@PropertySource+@Value注解读取方式

  1. @Component

  2. @PropertySource(value = { "config/db-config.properties" })

  3. public class DBConfig1 {

  4.  

  5.    @Value("${db.username}")

  6.    private String username;

  7.  

  8.    @Value("${db.password}")

  9.    private String password;

  10.  

  11.    public String getUsername() {

  12.        return username;

  13.    }

  14.  

  15.    public void setUsername(String username) {

  16.        this.username = username;

  17.    }

  18.  

  19.    public String getPassword() {

  20.        return password;

  21.    }

  22.  

  23.    public void setPassword(String password) {

  24.        this.password = password;

  25.    }

  26.  

  27. }

注意:@PropertySource不支持yml文件读取。

4.@PropertySource+@ConfigurationProperties注解读取方式

  1. @Component
    
    @ConfigurationProperties(prefix = "db")
    
    @PropertySource(value = { "config/db-config.properties" })
    
    public class DBConfig2 {
    
    
    
       private String username;
    
       private String password;
    
    
    
       public String getUsername() {
    
           return username;
    
       }
    
    
    
       public void setUsername(String username) {
    
           this.username = username;
    
       }
    
    
    
       public String getPassword() {
    
           return password;
    
       }
    
    
    
       public void setPassword(String password) {
    
           this.password = password;
    
       }
    
    
    
    }

    5.Environment读取方式

以上所有加载出来的配置都可以通过Environment注入获取到。

  1. @Autowired

  2. private Environment env;

  3.  

  4. // 获取参数

  5. String getProperty(String key);

总结

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

 

转载来自:https://mp.weixin.qq.com/s/aen2PIh0ut-BSHad-Bw7hg

你可能感兴趣的:(Spring Boot读取配置的几种方式)