Spring bootリソースディレクトリプロファイル固有の環境の分割


リソースディレクトリ別の環境を使用して切断する理由


一般的に、アプリケーション-${profile}です.propertiesとして使用し、実行オプションにアクティブなprofileとして使用するpropertiesを指定します.この方法には以下の欠点がある.
すべての環境のプロパティが構築されたjarファイルに露出します.
  • プロファイルで新しいリソースを追加する必要がある場合は、適切な設定が必要です.
    ->筆者はlog 4 j 2の設定をプロファイルごとに分離
  • 開発環境

  • gradle 7.4.1
  • spring boot 2.6.6
  • 設定


    build.gradle

    // build 시 profile 옵션이 빠졌을시 자동으로 local로 세팅 -> 해당 ide에서 따로 세팅할필요가없다.
    ext.profile = (!project.hasProperty('profile') || !profile) ? 'local' : profile
    
    //resources-* 를 전체 제외 시키고 필요한 resources-${profile} 만 빌드에 포함시킨다.
    sourceSets{
        main{
            resources {
                srcDirs "src/main/resources/resources-${profile}"
                exclude "resources-*"
            }
        }
    }

    ディレクトリ構造



    application.properties

    #개발환경에 상관없는 공통 프로퍼티
    spring.profiles.include=core
    #active profile
    spring.profiles.active=local

    構築結果



    構築したjarファイルを解凍すると、上記のプロパティファイルのみが確認できます.

    Git


    https://github.com/gh90/example-profile