其他分享
首页 > 其他分享> > 如何使用maven配置文件设置spring活动配置文件

如何使用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