早几年,在外包公司,区分测试环境、正式环境,后来还弄个准生产环境。于是就有个问题,配置文件从测试环境上到准生产环境,要改一遍。从准生产环境上到正式环境,又要改一遍。当时觉得就这么习以为常。
现在项目(spring mvc+spring),其实除了应用程序部署,是区分测试环境和正式环境的,其他的数据库、缓存服务器等等都是公用的。
不过,配置文件是分开测试和正式的,那怎么对应测试环境就加载测试的配置文件,正式环境就加载正式环境的配置文件???????
1. spring配置文件
<beans profile="test">
</beans>
<beans profile="prod">
</beans>
2. tomcat配置文件
通过tomcat指定,在bin/catalina.sh文件中, 测试环境:JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=test",正式环境:JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=prod
接下来是spring boot的项目,
刚开始接触的时候,是可以按照环境去定义配置文件,比如application-test.properties,application-prod.properties。还是要在application.properties中指定当前环境:
spring.profiles.active=test
或者通过配置运行参数,切换环境:
然后心里一直带着疑问,难道说每次还要改这个配置文件去打包吗?
百度一下,
目前的解决方法是,打包的时候指定运行时环境参数,这样就可以打出对应环境的包。
只听课,不思考问题,也不行。
听课,思考问题,带着问题,听课或者百度,成长很快。
只可惜醒悟有点晚。。。。。