java - 在 bootstrap.properties 中定义时如何访问 'spring.application.name'?

标签 java spring spring-boot dependency-injection

我有以下 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/

相关文章:

spring - 对同一实体类运行两个 @NamedNativeQuery 查询

spring - Swagger codegen - 更改 api 和 Controller 类名称

testing - 如何将模拟 mvc GET 调用映射到 java POJO?

java - 使用安全的网络服务( Spring session )

java - 在 Java 中播放声音

java - Spring 依赖注入(inject)的 NullPointerException

java - 如何使用 Spring Boot 让 Twilio 在通话中一一告诉 OTP

java - 基于 MVC 在 jsp/servlet 应用程序中设置连接池?

java - 如何让 Java 使用我的安全提供程序?

java - @Autowired 来自外部 Jar 的对象