次の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'を挿入できない理由のヒントはありますか?他のスプリングブートクラウドをサポートするために、そこで定義する必要があります。
最初の答えは正しいです。デフォルトのプロパティファイルは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
デフォルトでは、プロパティソースを指定しない場合、Spring Bootはファイルapplication.properties
でプロパティを検索します。したがって、プロパティファイルの名前をデフォルトの名前に変更するか、bootstrap.propertiesのプロパティソースを手動で指定する必要があります。