Spring Profiles
春プロファイルは、アプリケーションの設定の一部を分離し、特定の環境ではそれが唯一利用できるようにする方法を提供します。任意の@Componentまたは@Configurationに@Profileというマークを付けると、ロード時の制限を受けることができます。
n通常のSpring方法では、spring.profiles.active環境プロパティを使用してアクティブなプロファイルを指定できます。
spring.profiles.active=dev,hsqldb
をしたり、プログラム可能なスイッチ
--spring.profiles.active=dev,hsqldb.
を使用して、コマンドラインで指定する:あなたは、あなたのapplication.propertiesに含めることができ、たとえば、通常のいずれかの方法でプロパティを指定することができますアプリケーションを実行する前にSpringApplication.setAdditionalProfiles(...)を呼び出すことによってアクティブなプロファイルを設定します。また、SpringのConfigurableEnvironmentインタフェースを使用してプロファイルをアクティブ化することもできます。
application.properties(またはapplication.yml)と@ConfigurationPropertiesで参照されるファイルの両方のプロファイル固有のバリアントは、ファイルがロードされるときに考慮されます。詳細は、第24.4項「Profile-specific properties」を参照してください。
application.propertiesファイルに加えて、プロファイル固有のプロパティーは、application- {profile} .propertiesという命名規則を使用して定義することもできます。環境には、アクティブなプロファイルが設定されていない場合(つまり、プロファイルが明示的にアクティブ化されていない場合、application-default.propertiesのプロパティがロードされている場合)に使用される一連のデフォルトプロファイル(デフォルトでは[デフォルト])があります。
プロファイル固有のプロパティは、標準のapplication.propertiesと同じ場所からロードされます。プロファイル固有のファイルは、パッケージ固有のファイルがパッケージ化されたjarの内側にあるかどうかにかかわらず常に非特定のファイルを上書きします。
複数のプロファイルが指定されている場合は、最終的な勝ち戦略が適用されます。たとえば、spring.profiles.activeプロパティで指定されたプロファイルは、SpringApplication APIで設定されたプロファイルの後に追加されるため、優先されます。
以下はymlファイルの例です。 2つのプロファイルを含んでいます。
#Production Configuration values
spring:
profiles: prod
datasource:
url: jdbc:mysql://localhost:3306/production
username: userName
password: password
main:
banner-mode: "off"
jpa:
show-sql: false
---
#Development Configuration values
spring:
profiles: development
datasource:
url: jdbc:mysql://localhost:3306/development?useSSL=false
username: userName
password: password
... Other settings can be here like creating tables, configure liquibase or hibernate auto ddl to true.
が開発モードでプロジェクトを実行するには、あなたがより多くのLiquiBaseをのようなものを探しているように、以下の
java -jar -Dspring.profiles.active=development springbootproject.jar
その音を実行したり、データベースの変更/データベースのバージョン管理を制御するためのフライウェイすることができます。 –
これを春のプロファイルで実現できますか? 2つのプロファイルを作成します。 1 - 開発用、2 - 生産用。開発パスプロファイルを開発として実行する場合。 – Sudhakar