如何使用maven配置文件设置spring活动配置文件
作者:互联网
我有一个maven作为构建工具的应用程序.
我正在使用maven配置文件来设置不同配置文件的不同属性.
我想要做的是maven中的所有活动配置文件也将移植到spring活动配置文件中,因此我可以在bean签名(@profile)中引用它们.但我不知道该怎么做.
例如:考虑以下maven设置
<profiles>
<profile>
<id>profile1</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
</properties>
</profile>
<profile>
<id>profile2</id>
<properties>
</properties>
</profile>
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
</properties>
</profile>
<profile>
<id>production</id>
<properties>
</properties>
</profile>
</profiles>
假设我运行maven而没有指定任何其他配置文件,我希望spring有profile1和开发作为活动配置文件.
解决方法:
您必须过滤应用程序的资源,例如属性文件,其中包含要在spring中激活的配置文件的信息.
例如
spring.profile = ${mySpringProfile}
并为每个配置文件定义此变量的值(mySpringProfile).
在构建期间,将相应地过滤到当前活动的配置文件中定义的值.
然后在您的应用程序的引导程序中,您将根据此文件选择适当的配置文件(由于您没有向我们提供更多信息,因此无法帮助您,但这非常简单.
注意:我找不到在maven中获取当前活动配置文件的方法(类似于包含-P值的project.profiles.active),这就是为什么你必须为每个配置文件设置一个新变量的原因.
注意2:如果您正在运行Web应用程序,而不是使用此中间文件,请在web.xml中过滤此值
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>${mySpringProfile}</param-value>
</context-param>
注3:这实际上是一种不好的做法,您应该在运行时使用系统属性设置配置文件
标签:java,spring,maven,spring-profiles 来源: https://codeday.me/bug/20190923/1815149.html