02Spring Boot配置文件詳解

02Spring Boot配置文件詳解

自定義屬性

  1. 在src/main/java/resources目錄下建立一個application.properties或application.yml
  2. 在application.yml自定義一組屬性
my:
 name: boot
 age: 12
  1. 讀取配置文件的值只須要加@Value("${屬性名}")
@RestController
public class ConfigController {

    @Value("${my.name}")
    private String name;
    @Value("${my.age}")
    private int age;

    @RequestMapping(value = "/config")
    public String config(){
        return name+":"+age;
    }
}
  1. 啓動項目,訪問:localhost:8080/config

將配置文件的屬性賦給實體類

  1. 當配置中有不少屬性時,能夠把這些屬性做爲字段建立javabean,並將屬性值賦予給他們
my:
  name: boot
  age: 20
  # ${random} ,用來生成各類不一樣類型的隨機值。
  number:  ${random.int}
  uuid: ${random.uuid}
  max: ${random.int(10)}
  value: ${random.value}
  greeting: hi,i'm  ${my.name}
  1. 建立一個javabean,並添加註解@ConfigurationProperties(prefix = "my")
@ConfigurationProperties(prefix = "my")
public class ConfigBean {
    private String name;
    private int age;
    private int number;
    private String uuid;
    private int max;
    private String value;
    private String greeting;
    get...set...省略
    使用idea自動生成get,set和toString
}
  1. 在應用類或啓動類上增長註解
@EnableConfigurationProperties({ ConfigBean.class })
  1. 添加ConfigBeanController類
@RestController
public class ConfigBeanController {
    @Autowired
    private ConfigBean configBean;
    @RequestMapping("/configbean")
    public String config(){
        // 輸出全部字段的值
        return  configBean.toString();
    }
}
  1. 啓動項目,訪問http://localhost:8080/configbean

自定義配置文件

  1. application配置文件是系統默認的,咱們能夠添加其餘名稱的配置文件,如test.properties(不能是test.yml,測試讀不到數據)
com.boot.name=boot
com.boot.age=20
  1. 添加TestBean,須要指定文件名和前綴
@Configuration
@PropertySource(value = "classpath:test.properties")
@ConfigurationProperties(prefix = "com.boot")
public class TestBean {
    private String name;
    private int age;
    省略get,set,tostring
}
  1. 添加TestBeanController
@EnableConfigurationProperties({TestBean.class})
@RestController
public class TestBeanController {
    @Autowired
    private  TestBean testBean;
    @RequestMapping("/testconfig")
    public String testConfig() {
        return testBean.toString();
    }
}
  1. 啓動項目,返回http://localhost:8080/testconfig

多個環境配置文件

  1. 在現實的開發環境中,咱們須要不一樣的配置環境;格式爲application-{profile}.properties,其中{profile}對應你的環境標識,好比
  • application-test.properties:測試環境
  • application-dev.properties:開發環境
  • application-prod.properties:生產環境
  1. 實際使用的配置文件,經過在application.yml中增長:
spring:
  profiles:
    active: dev
  1. 添加application-dev.yml
my:
  name: dev
  age: 11
#server:
#  port: 8082
  1. 啓動程序,訪問http://localhost:8080/config,發現讀取的是application-dev.yml中的配置
  2. 訪問http://localhost:8080/configbean,會發現,當application-dev.yml和application.yml中有重名的字段時,前者會覆蓋後者的值。
ConfigBean{name='dev', age=11, number=-1422131996, uuid='5bebc511-f1a4-4f2b-95ed-540e4b48e8bd', max=0, value='8b96a5bbde492fb189e4fa52573c9caf', greeting='hi,i'm dev'}
相關文章
相關標籤/搜索