设置Spring Profile变量



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

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

-Dspring.profiles.active=test

Edit:要将其添加到eclipse中的tomcat中,选择Run -> Run Configurations并选择tomcat运行配置。单击Arguments选项卡,在VM arguments的末尾添加-Dspring.profiles.active=test。另一种方法是将财产添加到你的卡特琳娜。在Servers项目中添加属性,但如果您在那里添加它,则省略-D .

Edit:对于与Spring Boot一起使用,您还有一个额外的选择。如果在属性前加上两个破折号,则可以将该属性作为程序参数传递。

下面是两个使用Spring Boot可执行jar文件的例子…

系统属性

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

项目论证

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

至少有两种方法:

  1. 在web.xml中定义上下文参数-打破了"一个包适用于所有环境";声明。我不推荐

  2. 定义系统属性-Dspring.profiles.active=your-active-profile

我相信定义系统属性是一个更好的方法。那么如何为Tomcat定义系统属性呢?在网上我可以找到很多建议,比如"修改catalina.sh"。因为你找不到任何配置文件来做这样的事情。修改catalina.sh是一个肮脏的、不可维护的解决方案。有更好的方法。

在Tomcat的bin目录下创建文件setenv.sh,内容为:

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

,在运行catalina.sh start或run时自动加载。

对于Eclipse,在VM参数中设置 -Dspring.profiles.active 变量应该可以达到目的。

右键单击项目->运行——>运行配置——>参数

并添加你的 -Dspring.profiles.active=dev VM参数

作为系统环境变量:

Windows:

开始->键入"envi"选择环境变量并添加一个新的: Name: spring_profiles_active Value: dev(或任何你的)

Linux:

在/etc/environment的PATH下添加以下行:

spring_profiles_active=prod(或其他配置文件)

然后是export spring_profiles_active=prod所以你现在有它在运行时

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

spring.profiles.active=dev

对于Tomcat 8:

Linux:

创建setenv.sh并更新如下:

出口SPRING_PROFILES_ACTIVE = dev

Windows:

创建setenv.bat并更新如下:

设置SPRING_PROFILES_ACTIVE = dev

最新更新