【Java】SpringBootプロジェクトのリソースディレクトリ配下に複数の設定ファイルがあるのですが、特定の設定ファイルを指定して有効にするにはどうすればよいですか?

プロジェクトを開発する際には、テスト環境、本番環境、開発環境、製品環境、その他の環境など複数の開発環境が存在します。設定ファイルはいくつあるので、どの設定ファイルが有効になるのでしょうか
ここに画像の説明を挿入
ここに画像の説明を挿入
必要な構成ファイルを指定するにはどうすればよいでしょうか? デフォルトで有効になる設定ファイルを指定するにはどうすればよいですか?
プログラムの実行中に次の行を見つけました。
ここに画像の説明を挿入
つまり、デフォルトで非常に多くの構成環境がある場合、開発構成はデフォルトで有効になります。構成を通じて構成ファイルをより明示的に指定できますか? 答えは「はい」です。次のようにいくつかの方法が紹介されています。
1: まず、グローバル構成を直接使用します。
プロジェクト内に構成パッケージを作成し、その後、その構成パッケージを使用して現在の開発環境を指定できます。
2: システム設定を使用することもできます。クラスを使用して設定ファイルを指定します。もちろん、この方法は絶対にお勧めしません
ここに画像の説明を挿入
3: JVM の起動パラメータを設定することもできます

java -jar -Dspring.profiles.active=dev demo-0.0.1-SNAPSHOT.jar

4: これは私が使用する方法です。次のようになります。

   <build>
        <defaultGoal>compile</defaultGoal>
        <finalName>easy_config</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>environment/</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/environment/${running.env}</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.5.8</version>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <running.env>dev</running.env>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <running.env>test</running.env>
            </properties>
        </profile>
        <profile>
            <id>qa</id>
            <properties>
                <running.env>qa</running.env>
            </properties>
        </profile>
        <profile>
            <id>stage</id>
            <properties>
                <running.env>stage</running.env>
            </properties>
        </profile>
        <profile>
            <id>product</id>
            <properties>
                <running.env>product</running.env>
            </properties>
        </profile>
    </profiles>

次のコード行を見ると、その効果がわかりますが、アクティベーション タグを使用して、リソース ファイル内のどのファイルを使用するかを制御できます。

		<profile>
            <id>dev</id>
            <properties>
                <running.env>dev</running.env>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>

5: IDEA 構成を使用する
ここに画像の説明を挿入
この構成を使用すると、application-{spring.profiles.active}.yml タイプのファイルが作成され、それらは直接かつ明示的に存在する必要があります。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/Zhangsama1/article/details/131469731