设置Spring轮廓变量

z5btuh9x  于 2023-05-16  发布在  Spring
关注(0)|答案(6)|浏览(215)

我有两个Spring Profile:devtest。我想在服务器环境中设置活动概要文件,但不想在代码中设置它,这样无论我在哪里部署应用程序,概要文件都会根据服务器中的概要文件加载。我该怎么做?

lnlaulya

lnlaulya1#

您可以简单地在服务器上设置一个系统属性,如下所示...

-Dspring.profiles.active=test

**编辑:**要在eclipse中将其添加到tomcat,请选择Run -> Run Configurations并选择Tomcat运行配置。单击Arguments选项卡并在VM arguments的末尾添加-Dspring.profiles.active=test。另一种方法是将该属性添加到catalina.propertiesServers项目中的www.example.com,但如果在那里添加它,则忽略-D
**编辑:配合Sping Boot **使用,多了一个选择。如果在属性前面加上两个破折号,则可以将属性作为程序参数传递。

下面是使用Sping Boot 可执行jar文件的两个示例...

系统属性

$ java -jar -Dspring.profiles.active=test myproject.jar

程序参数

$ java -jar myproject.jar --spring.profiles.active=test
jobtbby3

jobtbby32#

至少有两种方法可以做到这一点:
1.在web.xml中定义上下文参数-这打破了“一个包用于所有环境”的说法。我不建议你这么做
1.定义系统属性-Dspring.profiles.active=your-active-profile
我认为定义系统属性是一种更好的方法。那么如何为Tomcat定义系统属性呢?在互联网上,我可以找到很多建议,如“修改catalina.sh”,因为你不会找到任何配置文件做这样的事情。修改catalina.sh是一个肮脏的不可维护的解决方案。有一个更好的方法来做到这一点。
只需setenv.sh在Tomcat的bin目录中创建文件www.example.com,内容如下:

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=dev"

并且它将在运行catalina.sh start或run期间自动加载。
Here is a blog描述上述解决方案。

vngu2lb8

vngu2lb83#

对于Eclipse,在VM参数中设置**-Dspring.profiles.active变量就可以了。
转到
右键单击项目-->运行方式-->运行配置-->参数
并在
*VM参数中添加**-Dspring.profiles.active=dev**

uqzxnwby

uqzxnwby4#

作为系统环境变量:

**Windows:**开始->键入“envi”选择环境变量并添加新的:Name: spring_profiles_active Value: dev(或任何你的)
**Linux:**在PATH下的/etc/environment中添加以下行:

spring_profiles_active=prod(或任何配置文件)
然后还有export spring_profiles_active=prod,所以现在在运行时中有它。

wn9m85ua

wn9m85ua5#

<tomcat-home>\conf\catalina.properties文件中,添加以下新行:

spring.profiles.active=dev
e5njpo68

e5njpo686#

对于Tomcat 8:
Linux:
创建setenv.sh并更新如下:
export SPRING_PROFILES_ACTIVE=dev
窗口:
创建setenv.bat并更新如下:
设置SPRING_PROFILES_ACTIVE=dev

相关问题