Mah*_*n K 60 spring spring-profiles spring-boot
我有两个Spring配置文件:dev
和test
.我想在服务器环境中设置活动配置文件,我不想在我的代码中设置它,这样无论我在何处部署应用程序,都会根据服务器中的配置文件加载配置文件.我怎样才能做到这一点?
hyn*_*ess 101
您只需在服务器上设置系统属性,如下所示......
-Dspring.profiles.active=test
Run Code Online (Sandbox Code Playgroud)
编辑:要在eclipse中将其添加到tomcat,请选择Run -> Run Configurations
并选择Tomcat运行配置.单击Arguments
选项卡并在末尾添加-Dspring.profiles.active = test VM arguments
.另一种方法是将属性添加到Servers
项目中的catalina.properties ,但如果添加它,则省略-D
编辑:要与Spring Boot一起使用,您还有一个选择.如果使用两个破折号添加属性,则可以将该属性作为程序参数传递.
以下是使用Spring Boot可执行jar文件的两个示例...
系统属性
[user@host ~]$ java -jar -Dspring.profiles.active=test myproject.jar
Run Code Online (Sandbox Code Playgroud)
程序论证
[user@host ~]$ java -jar myproject.jar --spring.profiles.active=test
Run Code Online (Sandbox Code Playgroud)
Nil*_*esh 25
至少有两种方法可以做到这一点:
在web.xml中定义上下文参数 - 打破"所有环境的一个包"语句.我不推荐
定义系统属性 -Dspring.profiles.active=your-active-profile
我认为定义系统属性是一种更好的方法.那么如何为Tomcat定义系统属性呢?在互联网上,我可以找到许多建议,如"修改catalina.sh",因为你找不到任何配置文件来做这样的事情.修改catalina.sh是一个肮脏的不可维护的解决方案.有一种更好的方法可以做到这一点.
只需在Tomcat的bin目录中创建文件setenv.sh,其中包含以下内容:
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=dev"
Run Code Online (Sandbox Code Playgroud)
并且它将在运行catalina.sh启动或运行期间自动加载.
这是一篇描述上述解决方案的博客.评论部分很有趣,因为它讨论了更多细节.
对于Eclipse,-Dspring.profiles.active
在VM参数中设置变量可以解决问题。
去
右键单击项目->运行方式->运行配置->参数
并-Dspring.profiles.active=dev
在VM参数中添加
在该<tomcat-home>\conf\catalina.properties
文件中,添加以下新行:
spring.profiles.active=dev
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
86344 次 |
最近记录: |