当前位置: 首页 > 知识库问答 >
问题:

替换应用程序的价值。来自其他属性文件的属性

岑俊明
2023-03-14

我的Spring boot应用程序中有以下文件应用程序属性文件。所有属性文件都位于src/main/resources文件夹中,Spring boot版本为2.1.6

application.propertiesapplication-dev.propertiesapplication-tst.properties

应用属性应用。name={app.name}app。common=common val
application-dev.properties应用程序。name=My dev app
application tst。属性应用。name=我的tst应用程序

Dev和tst是我创建的maven配置文件

 <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <env>dev</env>
            </properties>
        </profile>

        <profile>
            <id>tst</id>
            <properties>
                <env>tst</env>
            </properties>
        </profile>
    </profiles>

如果我用dev profile构建项目,我应该在我的应用程序中获得以下信息。属性

1) mvn-Pdev清洁安装

application.propertiesapp.name=我的开发应用程序app.common=通用Val

2) mvn-Ptst清洁安装

应用属性应用。name=我的tst应用程序。公共=公共值

我怎样才能做到这一点?

共有2个答案

萧宣
2023-03-14

这可能不是推荐的方法,但您可以使用org。阿帕奇。专家插件。maven资源插件如下。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <filters>
            <filter>src/main/resources/application-${env}.properties</filter>
        </filters>
    </build>
app.name=@app.name@
app.common=Common val
app.name=My dev app
app.name=My tst app

然后,mvn-Pdev清洁安装mvn-Ptst清洁安装

皇甫建木
2023-03-14

可以使用环境变量设置活动配置文件,如下所示

mvn安装-Dspring。个人资料。活动=开发

mvn安装-Dspring。个人资料。活动=tst

 类似资料:
  • 在unix中,我以以下方式运行jar java-jar$classpath--spring.config.location=application.yml 我认为通过命令行提供的属性具有最高的优先级(从下面的链接),那么为什么使用来自DATASERVICE_PROPERTIES的server.port呢? Spring Boot和多个外部配置文件

  • 问题内容: 内容: 我要从更改为。这是我的代码: 输出内容: 其他属性将被删除。我想更新一个特定的属性值,而不删除其他属性。 问题答案: 关闭输入流后,打开输出流并存储属性。

  • 我正在尝试设置一个使用Spring Cloud Config和Eureka的微服务系统。我希望能够看到其他应用程序属性文件中设置的属性(特别是Eureka的端口号)。 Spring Cloud Config git存储库中的文件: 独自创立yml eureka-server.yml 我想让每项服务都知道Eureka在哪里,这个设置很好,但是如果我要更改Eureka的端口,我需要更改两个或更多的位置

  • 我需要使用属性名称替换xml文件中的属性值。 前任: 我有一个替换此值的目标。i、 e“默认值”。如果用户为属性测试名称指定了错误的值,则可以多次运行此目标。用户可以使用正确的值重试运行目标。因此,我不能使用正则表达式替换。我只能依靠物业名称。有没有一种方法可以在ant中使用属性值的名称来替换属性值?

  • 我正在寻找一种解决方案,使用Jackson基于同一POJO中的其他属性值序列化POJO对象属性 如果某个属性值符合某些条件,则应根据要求更改其他属性值 例如,下面是我的JSON对象: 在上述情况下,如果的值符合某些条件,那么我应该能够更改的值 为什么需要这样做: 是一个配置对象 和-是配置设置 在上面的例子中,中有一个是,我需要屏蔽/更改相应的 还要补充一点,在这个例子中,属性是和,但是如果我们找