Spring Boot+Profile实现不同环境读取不同配置
文件结构如下:
但是官方推荐放在config文件夹下。
作用:
不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中。prod环境下的配置配置在application-prod.properties中。
使用:
1、在applicaiton.properties中指定,比如spring.profiles.active=dev
2、启动时指定参数,比如java -jar xxx.jar --spring.profiles.active=dev
3、启动时指定系统属性,比如java -jar xxx.jar -Dspring.profiles.active=dev
使用技巧:
在application.properties中的变量可以通过这样的方式获取:
@Autowired private Environment env; @RequestMapping("/testProfile") public String testProfile(){ return env.getProperty("spring.profiles.active"); }
总结:
- 各个环境公共的配置写在application.properties中,默认读取这个。
- 各个模块独有的配置配置在自己的application-{xxx}.properties文件中,通过启动参数--xxx或者系统属性-Dxxx指定来加载,或者在application.properties中配置spring.profiles.active的项。
- 程序启动时如果没有任何指定,默认读取application.properties;如果指定了那么会读取application-{xxx}.properties,会覆盖application.properties的的项。
参考:
http://www.leftso.com/blog/111.html(这个说的比较详细)