2016-12-15 5 views
5

は、私は、次の春ブート1.4.2.RELEASEサンプルアプリbootstrap.propertiesで定義されている場合、どのように 'spring.application.name'にアクセスできますか?

@SpringBootApplication 
public class Application { 

    @Value("${spring.application.name}") 
    private String applicationName; 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

を持っていると私はbootstrap.propertiesで定義された以下の構成があります。

spring.application.name=sample-app 

を、それを実行すると、私は次のエラーを取得します:

java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.application.name' in string value "${spring.application.name}" 

「spring.application.name」を挿入できない理由についてのヒントを教えてください。 他のスプリングブートクラウドをサポートするために、そこに定義する必要があります。

+1

を何か他のものは、このアプリでは間違っています。 'bootstrap.properties'に入れて、効果的に春の雲を使うと、利用可能になります。私の最高の推測では、 'bootstrap.properties'はあなたのアプリケーションでは全く無視されます。多分あなたは雲デープを持っていますが、あなたはそれを使用していませんか? –

+0

うん、あなたは正しい。私は春の雲を使用する予定でしたが、あなたのコメントを読んだ後、私はまだそれを使用していないことに気づいた!ありがとう! –

答えて

2

最初の回答は正しいです。デフォルトのプロパティファイルは、application.propertiesまたはapplication.ymlです。

ブートストラップファイルはSpring Cloud用です。

あなたは春の雲を使用していて、ブートストラップファイルが動作しない場合は、あなたが「クラウド」春のプロファイルを有効にする必要がありhttp://projects.spring.io/spring-cloud/spring-cloud.html#_the_bootstrap_application_context

を参照してください。例えば

使用:

./gradlew -Dspring.profiles.active=cloud bootrun 

または

./mvnw spring-boot:run -Dspring.profiles.active=cloud 
2

デフォルトでは、プロパティーソースを指定しないと、ファイルapplication.propertiesのプロパティが春ブートされます。したがって、プロパティファイルの名前をデフォルト名に変更するか、bootstrap.propertiesのプロパティソースを手動で指定する必要があります。

関連する問題