Isr*_*dez 11 java spring dependency-injection spring-boot
我有以下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);
}
}
Run Code Online (Sandbox Code Playgroud)
我在bootstrap.properties中定义了以下配置:
spring.application.name=sample-app
Run Code Online (Sandbox Code Playgroud)
运行时我收到以下错误:
java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.application.name' in string value "${spring.application.name}"
Run Code Online (Sandbox Code Playgroud)
有关为什么它无法注入'spring.application.name'的任何提示?需要在那里定义它以支持其他Spring引导云.
小智 7
第一个答案是正确的。默认属性文件是application.properties或application.yml。
引导文件适用于Spring Cloud。
参见http://projects.spring.io/spring-cloud/spring-cloud.html#_the_bootstrap_application_context
如果您使用的是Spring Cloud,并且引导文件不起作用,则需要启用“ cloud” Spring配置文件。
例如使用:
./gradlew -Dspring.profiles.active=cloud bootrun
Run Code Online (Sandbox Code Playgroud)
要么
./mvnw spring-boot:run -Dspring.profiles.active=cloud
Run Code Online (Sandbox Code Playgroud)
小智 5
默认情况下,如果您未指定任何属性源,则spring boot将在file中查找您的属性application.properties
。因此,您应该将属性文件重命名为该默认名称,或者手动为bootstrap.properties指定属性源。
归档时间: |
|
查看次数: |
15473 次 |
最近记录: |