Spring中的Maven配置文件和应用程序yml文件


问题内容

我有一个使用以下命令构建的Spring项目

mvn clean install -Pdevelopment

通过基于Maven配置文件选择适当的属性文件可以完美地工作

现在,我们当前的应用程序已更新为同时具有application.yml文件和属性文件

Yml文件提供了基于弹簧轮廓创建属性的能力

#DEV
spring:
    profiles: profile1
environment:
    property1: AAA
    property2: BBB
---
#PROD
spring:
    profiles: profile2
environment:
    property1: CCC
    property2: DDD
---

这与使用 -Dspring.profiles.active=profile1

有没有办法读取Maven配置文件(而不是弹簧配置文件)并相应地设置属性?


问题答案:

由于您不再希望使用弹簧轮廓,因此在中只需每个键有1个即可application.yml。从您的示例中得出,它看起来可能像这样:

environment:
  property1: @property1@
  property2: @property2@

然后在您的pom.xmlsettings.xml

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <property1>AAA</property1>
            <property2>BBB</property2>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <property1>CCC</property1>
            <property2>DDD</property2>
        </properties>
    </profile>
</profiles>

在我的应用程序类中像这样使用:

@Value("${environment.property1}")
private String profileProperty;

@Value("${environment.property2}")
private String settingsProperty;