根据文件名postfix加载YML文件以针对选定的配置文件运行?

时间:2014-08-25 22:10:43

标签: spring spring-boot

当使用环境属性时,如果其名称后缀与我愿意运行的配置文件相匹配,我需要从加载YML文件的YML文件加载它们。

我在某个项目中看到了这个结构,但我似乎无法在空白测试项目中重新创建它:

application.yml

应用dev.yml

application-acc.yml

等。

运行spring boot app时会加载一个匹配的 -P 参数。

当我尝试在我自己的新项目上重现行为时 - 只加载 application.yml 。所有其他文件都被忽略了......

我不希望破折号将单个文件中的个人资料分开 - 我希望通过使用我已经看过的结构来明确分离。

我缺少什么,为什么没有加载其他配置文件依赖的YML?(我使用的是最新版本,因此旧的bug(1.0.0 Spring Boot)不适用于我)。

以防maven pom。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <java.version>1.8</java.version>
    </properties>
    <groupId>Application</groupId>
    <artifactId>Base</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.1.3.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>1.13</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.app.config.SpringConfiguration</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

1 个答案:

答案 0 :(得分:0)

你说&#34; -P&#34;但这是一个Maven功能而不是Spring功能。要设置Spring配置文件,您可以使用System属性(-Dspring.profiles.active=dev)或环境变量(SPRING_PROFILES_ACTIVE=dev)或SpringApplication API。