把不同环境的配置写在application-{profile}.properties或application-{profile}.yml中。
@Profile注解的使用
使用java进行配置时,可以通过@Profile注解,实现不同环境使用配置策略。比如swagger现在使用很普遍了,但是它存在一定的安全问题,如果生产环境中也暴露swagger的话,风险还是比较大的,建议只在开发环境和测试环境启用,配置例子如下:
将上面的代码保存到logback-spring.xml文件中,而不是logback.xml中。
logback中profile的使用
在开发环境或测试环境中,为了方便排查问题,我们会使用DEBUG甚至TRACE级别的日志,而在生产环境中,避免日志增长过快,尽量只是输出ERROR级别的日志。这就需要日志配置也要能根据不同的环境,使用不同的配置策略。
spring boot中的logback就可以满足这样的需求,例子如下:
将上面的代码保存到logback-spring.xml文件中,而不是logback.xml中。
Spring boot 激活 profile的几种方式
在配置文件中直接指定
spring.profiles.active=test
这种方式非常不灵活,在实际开发部不太会使用到
使用占位符
在打包时替换,以mavne为例:
首先在配置文件中增加:
spring.profiles.active=@package.target@
在pom.xml中增加不同环境打包的配置:
执行打包命令:
mvn package -Ptest
缺点:每次打包都要指定profile
JVM参数方式
java命令行指定:
java -jar app.jar –spring.profiles.active=dev
tomcat 中catalina.bat(.sh中不用“set”) 添加JAVA_OPS。