我有以下 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}"
关于为什么它无法注入(inject)“spring.application.name”的任何提示? 需要在那里定义它以支持其他spring boot cloud。
最佳答案
第一个答案是正确的。默认属性文件是 application.properties 或 application.yml。
引导文件适用于 Spring Cloud。
见 http://projects.spring.io/spring-cloud/spring-cloud.html#_the_bootstrap_application_context
如果您使用的是spring cloud,并且引导文件不起作用,则需要启用“云”Spring配置文件。
例如使用:
./gradlew -Dspring.profiles.active=cloud bootrun
或
./mvnw spring-boot:run -Dspring.profiles.active=cloud
关于java - 在 bootstrap.properties 中定义时如何访问 'spring.application.name'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41155203/