当应用程序需要部署到不同的运行环境时,一些配置细节通常会有所不同。比如,数据库连接的细节和日志在开发环境下和测试环境下就会不一样,在生产环境下又不一样。
如果你正在使用application.properties,可以创建额外的属性文件,遵循application-{profile}.properties这种命名格式,这样就能在application.properties提供特定于Profile的属性了。
与此同时,那些并不特定于哪个Profile或者保持默认值(以防万一有哪个特定于Profile的配置不指定这个值)的属性,可以继续放在application.properties里。
配置文件可以放置的目录:
1.在应用程序打成jar后,在与jar的同级目录创建/config目录,将生产环境的配置文件放在里面。
2.也可以放在应用程序jar的同级目录
3.放在应用程序内的config包内
4.放在classpath根目录下。
以上优先级根据顺序从上往下
小细节:如果在同一优先级位置同时有application.properties和application.yml, 那么application.yml里的属性会覆盖application.properties里的属性。
个人推荐3种在不同的环境切换配置文件的方式:
1.可以在部署的时候通过命令的方式指定那个配置文件: $ java -jar xxx.jar --spring.profiles.active={profile}
2.可以先在应用程序同级目录创建/config子目录,提前先将生产环境的配置文件放置在里面(推荐)
3.打包的时候先在application.properties提前先指定好哪个配置:spring.profiles.active=profile(不推荐)
application.properties