2016-12-08 5 views
0

私は春のブート残りのアプリケーションを開発していると私は値「spring.profiles.active春ブーツ読んでいない環境固有のYAMLファイル

私は2つを持っているに基づいて環境固有のYAMLファイルを読み込むしようとしていますファイル

1. application.yml 
2. application-qa.yml 

と私はファイルは、プロパティの下に持っているファイル

application.ymlの両方にプロパティの下に持って

comp: 
bu: 
    env: local 

アプリケーション-qa.ymlファイルには、プロパティ

comp: 
bu: 
    env: QA 

下回っていると私は私だけapplication-qa.ymlがロードされることを期待していた、上記で与えられた、spring.profiles.active=qaを設定していますが、この場合には、両方のapplication.yml and application-qa.ymlがありますロードされ、コードがプロパティを探すときcomp.bu.env常に値を取得しています

ローカル

のみ

私は私のコードはapplication-qa.ymlファイルからcomp.bu.envプロパティを読みたいです。

私はここで何が欠けているのか理解するのに役立つことができますか?

+1

[プロファイル固有のプロパティは、非特定のプロパティを上書きする必要があります](http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config)html#boot-features-external-config-profile-specific-properties)、 'spring-boot-starer-actuator'を追加し、'/env'にアクセスして、あなたのプロパティに何が起こったかを見ることができます。 – tan9

+0

tan9、もっと詳しく教えていただけますか? – Suresh

+1

あなたのpom.xmlまたはbuild.gradleに 'spring-boot-starter-actuator'を追加し、あなたのアプリケーションを実行し、Springブートの[Endpoint](http:// localhost:8080/env) /docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html)。 – tan9

答えて

0

あなたの点をありがとう、私はそれを解決しました。 AWSプロファイルがapplication-qa.ymlにあります。私のQAプロパティはスキップされます私が提供したプロファイル名はQAであるためです。私はAWSの上に私のプロパティを移動しました:アプリケーションのqa.ymlファイル内のプロファイルは、その後、それらのプロパティがピックアップを開始しました。

1

comp.bu.envの設定をapplication.propertiesから削除します。別の設定ファイルapplication-dev.yamlを作成し、そこにこの設定を配置します。

comp: 
bu: 
    env: local 

今、あなたは地元のconfigure spring.profiles.active=qaに取り組むとき。

これにより、開発構成プロファイルが効果的に作成されます。

+0

提案してくれてありがとう、私はapplication.propertiesを持っていない私はそれを削除してapplication-dev.ymlを作成し、spring.profiles.active = qaを作成したので、アプリケーションを起動しようとしている私のアプリケーションはまだapplication.ymlファイルを探していて、そのファイルが存在しないので失敗します。春のブートには常にapplication.ymlファイルが必要です??? – Suresh

1

spring.profiles.activeの値が正しく設定されていないため、アプリケーションがデフォルトのapplication.ymlを読み込んでいるようです。 ​​コマンドの前に、 -Dspring.profiles.active=qa の値を設定してみてください。

あなたがgradleを使用している場合、あなたはそうするでしょう./gradlew -Dspring.profiles.active=qa bootrun

関連する問題