Spring Boot自定义配置与加载
application.properties
主要用来配置数据库连接、日志相关配置等。除了这些配置内容之外,还可以自定义一些配置项,如:
my.config.msg=this is a string my.config.url=com.luangeng.com my.config.conbim=${my.config.msg}${my.config.url} # 随机字符串 my.config.value=${random.value} my.config.number=${random.int} my.config.bignumber=${random.long} # 10以内的随机数 my.config.test1=${random.int(10)} # 10-20的随机数 my.config.test2=${random.int[5,10]}
增加配置类:
/** * 自定义属性与加载 */@Componentpublic class MyConfig { @Value("${my.config.msg}") private String msg; @Value("${my.config.url}") private String url; @Value("${my.config.conbim}") private String conbim; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getConbim() { return conbim; } public void setConbim(String conbim) { this.conbim = conbim; } @Override public String toString() { return "MyConfig{" + "msg='" + msg + '\'' + ", url='" + url + '\'' + ", conbim='" + conbim + '\'' + '}'; }}
---
配置类的使用:
@RestControllerpublic class InfoController { @Autowired MyConfig myconfig; @RequestMapping("/info") public String msg() { return "client1 service"+myconfig.toString(); }}
多环境配置:
开发Spring Boot应用时,通常会部署到几个不同的环境,比如:开发、测试、生产环境。其中每个环境的数据库地址、服务器端口等等配置都会不同,频繁修改配置文件是个非常繁琐且容易发生错误的事。
对于多环境的配置,Spring Boot通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包。
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties
的格式,其中{profile}
对应你的环境标识,比如:
application-dev.properties
:开发环境application-test.properties
:测试环境application-prod.properties
:生产环境
至于哪个具体的配置文件会被加载,需要在application.properties
文件中通过spring.profiles.active
属性来设置,其值对应{profile}
值。如:
spring.profiles.active=test
就会加载application-test.properties
配置文件内容
end