web-dev-qa-db-ja.com

bootstrap.propertiesで定義されている「spring.application.name」にアクセスするにはどうすればよいですか?

次のSpring-Boot 1.4.2.RELEASEサンプルアプリがあります。

@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'を挿入できない理由のヒントはありますか?他のスプリングブートクラウドをサポートするために、そこで定義する必要があります。

12

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

bootstrapファイルはSpring Cloudに適切です。

http://projects.spring.io/spring-cloud/spring-cloud.html#_the_bootstrap_application_context を参照してください

Springクラウドを使用していて、bootstrapファイルが機能していない場合は、「クラウド」Springプロファイルを有効にする必要があります。

たとえば、次のように使用します。

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

または

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

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

5
Duy Nguyen