サーチ…


異なるデータソースを使用するDev環境とProd環境

Spring-Bootアプリケーションを正常にセットアップした後、すべての設定はapplication.propertiesファイルで処理されます。このファイルはsrc/main/resources/ます。

通常、アプリケーションの背後にデータベースを置く必要があります。開発のためにその良いのセットアップ持っているdevprod環境を。複数の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


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow