当前位置: 首页 > 面试题库 >

如何使用Maven配置文件设置Spring Active配置文件

吕博耘
2023-03-14
问题内容

我有一个使用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具有profile1development配置为活动配置文件。


问题答案:

您将必须过滤应用程序的资源,例如属性文件,其中包含要在春季激活的配置文件的信息。

例如

spring.profile = ${mySpringProfile}

并为每个配置文件定义此变量的值(mySpringProfile)。

在构建期间,将根据当前活动配置文件中定义的值对其进行过滤。

然后,在应用程序的引导过程中,您将根据此文件选择适当的配置文件(由于您没有向我们提供更多信息,因此无法为您提供更多帮助,但这很容易。

注意 :我找不到在maven中获取当前活动配置文件的方法(类似于project.profiles.active,其中包含-
P值),这就是为什么必须为每个配置文件设置新变量的原因。

注意2 :如果您正在运行Web应用程序,则不要使用此中间文件,而应在web.xml中过滤该值

<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>${mySpringProfile}</param-value>
</context-param>

注意3 :这实际上是一种不好的做法,您应该在运行时使用系统属性设置配置文件



 类似资料:
  • 我有一个用maven作为构建工具的应用程序。 我正在使用maven概要文件从不同的概要文件设置不同的属性。 假设我运行带有out的maven,并指定我希望spring的任何其他概要文件,将和作为活动概要文件。

  • 问题内容: 我正在尝试根据某个Maven配置文件是否处于活动状态来使用数据库信息配置Spring配置文件。我已经看到了一些答案,但是很难将它们放在一起。 我有一个这样的Maven个人资料: 还有一个settings.xml文件,如下所示: 并在servlet-context.xml中: 我的问题基本上是,如何将Maven属性放入servlet- context.xml文件中?我需要一个.prope

  • 我有两个环境来设置我的API,所以我有生产和开发。我首先需要的是找到一种方法来自动完成这一任务,例如,在运行时,不发送任何参数(-d)应用程序找到了一种方法来识别环境,但我没有找到任何方法来完成这一任务。 所以我看了一个教程,在同样有一个方法放了一个环境变量,并定义了我的application.properties。所以在下面的步骤中: > 我在我的应用程序中定义了3个文件,application

  • 我正在尝试将我的应用程序配置为具有两个构建配置文件:开发和生产。为此,我在src/main/resources文件夹下创建了两个子目录:src/main/resources/development和src/main/resources/production。每个子目录都有自己的。属性文件。 我使用命令mvn install-P${profile_here}构建应用程序 Maven将与所选配置文件相

  • 我为开发和测试环境配置了两个Spring概要文件和。在每个环境中,我使用不同的数据库,即dev中的,以及测试中的。以下是每个配置文件的属性文件,其中通过spring boot分别解析为和,具体取决于配置的数据源。 application-dev.properties application-test.properties 配置文件的Flyway迁移文件位于下,而配置文件位于 当我使用profile

  • 我有spring boot的申请。我需要将spring boot配置文件连接到maven配置文件,所以当我调用命令时 或 它应该调用spring boot加载application-dev.yml或application-prod.yml。当我打电话的时候 它应该在启动之前调用application-dev.yml文件。因此需要从2个命令调用spring boot开发配置文件。我有一个问题,每次我