2017-05-30 20 views
1

私はSpring Bootで簡単なアプリケーションを開発していました。これは、ローカル開発(およびそれが動作します)としたSpring Boot + Gradle - 環境設定はどこにありますか?

  • Gradleでは、プロジェクトのルート上に置かれapplication.propertiesに設定された接続性を有する
  • H2データベース
  • Mavenのフォルダ構造(src/main/groovysrc/main/resourcesなど)

今私はOpenshiftに展開したいので、MySQLの設定で追加のプロダクション設定を作成する必要がありますが、どこに配置するのか、どのように使用するのかはわかりません。

だから私の質問は以下のとおりです。

  1. 私は2つの異なる構成(developmentproduction)を持つように何をすべきか?
  2. 設定ファイルはどこに置くのですか?
  3. build.gradleで何かを変更する必要がありますか?
  4. どのようにを構築する開発またはプロダクション設定のアプリですか?
  5. どのようにを実行する開発またはプロダクション設定のアプリですか?
  6. 複数の環境設定を作成するためのベストプラクティスは何ですか?

私はむしろフロントエンドの開発者であり、これらのバックエンドのものはすべて私にとっては明白ではないので、あなたの答えで考慮してください。

これが私の現在のbuild.gradle

plugins { 
    id 'org.springframework.boot' version '1.5.3.RELEASE' 
    id 'java' 
    id 'groovy' 
} 

jar { 
    baseName = 'myproject' 
    version = '0.0.1-SNAPSHOT' 
} 

repositories { 
    jcenter() 
} 

dependencies { 
    compile("org.springframework.boot:spring-boot-starter-web") 
    testCompile("org.springframework.boot:spring-boot-starter-test") 
    compile("org.springframework.boot:spring-boot-starter-data-jpa") 
    compile 'mysql:mysql-connector-java' 
    compile("com.h2database:h2") 
    compile("org.springframework.boot:spring-boot-starter-security") 
    compile('io.jsonwebtoken:jjwt:0.7.0') 
    compile localGroovy() 
} 

答えて

3

2つの異なる構成(開発と生産)を行うにはどうすればよいですか?

あなたの場合は、プロファイルを使用して達成することができます。あなたはそれについてhereを読むことができます。プロファイルごとにspecific application propertiesファイル(のように、.yml構成ファイルの場合も同じです)を使用することができます。次に、コマンドラインスイッチでアプリケーションを起動するプロファイルを指定する必要があります。

--spring.profiles.active=prod 

ここで設定ファイルを保存しますか?

application.propertiesと同じ場所にあります。

build.gradleで何かを変更する必要がありますか?

いいえ、ビルドスクリプトを変更する必要はありません。ビルド用ではなく、アプリケーションの実行にはすべての特定の構成が必要です。

開発またはプロダクション設定でアプリを構築するにはどうすればよいですか?

特定の設定でビルドする必要はなく、単にそれを実行するだけです。

開発またはプロダクション設定でアプリを実行するにはどうすればよいですか?

以前のように、アプリケーションを起動するときに使用するプロファイルを指定するだけです。

複数の環境設定を作成するためのベストプラクティスは何ですか?

私は、春を使用する場合 - プロファイルとプロファイル固有の構成とBean定義を使用します。

0

の内容で、ここで説明したようごH2の設定https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-profile-specific-propertiesを含み、その後、dev内の実行時に渡すことで、これを有効にするには、既存のapplication.propertiesファイル側に沿って別々のapplication-dev.propertiesを作成します。次の引数で--spring.profiles.active=devをプロダクションで同じように実行することができます。すなわち、application-prod.propertiesとなり、一般的な設定はapplication.propertiesになります。

+0

これらの設定ファイルはどこに置くのですか?プロジェクトのルートには?彼らは生成された戦争に含まれるだろうか? – akn

+0

それらを 'src/main/resources'に入れると、それらは生成されたwar/jarに含まれます。これが必要でない場合は、spring.config.locationを設定して、アーティファクトの外側からファイルを読み込むことができます。 –