spring-boot
複数のapplication.propertiesファイルの作成と使用
サーチ…
異なるデータソースを使用するDev環境とProd環境
Spring-Bootアプリケーションを正常にセットアップした後、すべての設定はapplication.propertiesファイルで処理されます。このファイルはsrc/main/resources/
ます。
通常、アプリケーションの背後にデータベースを置く必要があります。開発のためにその良いのセットアップ持っているdev
とprod
環境を。複数のapplication.properties
ファイルを使用すると、アプリケーションが起動する環境をSpring-Bootに伝えることができます。
良い例は、2つのデータベースを構成することです。以下のための一つのdev
とのための1つのproductive
。
dev
環境では、 H2
ようなメモリ内のデータベースを使用できます。 src/main/resources/
ディレクトリにapplication-dev.properties
という名前の新しいファイルを作成しapplication-dev.properties
。ファイルの内部には、メモリー内データベースの構成があります。
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
prod
環境では、例えば " postgreSQL
"のような "実際の"データベースに接続します。 src/main/resources/
ディレクトリにapplication-prod.properties
という名前の新しいファイルを作成しapplication-prod.properties
。ファイルの中には、 postgreSQL
データベースの設定があります:
spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret
デフォルトのapplication.properties
ファイルでは、どのプロファイルがSpring-Bootによってアクティブにされ、使用されるかを設定できるようになりました。 1つの属性を内部に設定するだけです:
spring.profiles.active=dev
または
spring.profiles.active=prod
重要なのは、一部が後ということである-
にapplication-dev.properties
ファイルの識別子です。
これで、識別子を変更するだけで、開発モードまたはプロダクションモードでSpring-Bootアプリケーションを起動することができます。インメモリデータベースは、起動または「実際の」データベースへの接続になります。確かに、複数のプロパティファイルを持つユースケースがはるかに多い。
アプリケーションを自動的に構築することにより、適切なバネプロファイルを設定する(maven)
さまざまな環境やユースケースに対して複数のプロパティファイルを作成することによって、手動でactive.profile
値を手動で手動で変更することが困難なことがあります。しかし、 maven-profiles
を使ってアプリケーションをビルドするactive.profile
に、 application.properties
ファイルにactive.profile
を設定する方法がありmaven-profiles
。
アプリケーションに3つの環境プロパティファイルがあるとしましょう:
application-dev.properties
:
spring.profiles.active=dev
server.port=8081
application-test.properties
:
spring.profiles.active=test
server.port=8082
application-prod.properties
。
spring.profiles.active=prod
server.port=8083
これらの3つのファイルは、ポートとアクティブなプロファイル名が異なります。
メインのapplication.properties
ファイルでは、 Maven変数を使用してSpringプロファイルを設定しました。
application.properties
。
spring.profiles.active=@profileActive@
その後、 pom.xml
mavenプロファイルを追加するだけで、3つの環境すべてのプロファイルを設定します。
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<build.profile.id>dev</build.profile.id>
<profileActive>dev</profileActive>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<build.profile.id>test</build.profile.id>
<profileActive>test</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
これで、mavenでアプリケーションをビルドできるようになりました。任意のMavenプロファイルを設定しないと、デフォルトのビルドプロファイルがビルドされます(この例ではdevです)。指定するには、mavenキーワードを使用する必要があります。 mavenでプロファイルを設定するキーワードは、 -P
直後にプロファイルの名前mvn clean install -Ptest
ます。
これで、カスタムビルドを作成してIDE
保存して、ビルド時間をIDE
することができます。
例:
mvn clean install -Ptest
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.3.RELEASE)
2017-06-06 11:24:44.885 INFO 6328 --- [ main] com.demo.SpringBlobApplicationTests : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 11:24:44.886 INFO 6328 --- [ main] com.demo.SpringApplicationTests : The following profiles are active: test
mvn clean install -Pprod
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.3.RELEASE)
2017-06-06 14:43:31.067 INFO 6932 --- [ main] com.demo.SpringBlobApplicationTests : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 14:43:31.069 INFO 6932 --- [ main] com.demo.SpringApplicationTests : The following profiles are active: prod