无法在 Spring Boot 应用程序中读取 application.properties

Posted

技术标签:

【中文标题】无法在 Spring Boot 应用程序中读取 application.properties【英文标题】:Unable to read application.properties in spring boot application 【发布时间】:2018-02-19 02:01:38 【问题描述】:

我无法在作为 bean 从另一个项目注入的类中读取项目中的 application.properties 值。我的项目正在使用另一个项目,该项目具有需要从 application.properties 读取配置的类。 我的是一个 Maven 项目和一个 Spring Boot 应用程序,在 src/main/resources 文件夹中具有 application.properties,并且这些属性值在其中定义。 我错过了什么无法读取文件值?或者是否有任何其他机制可以为通过组件扫描加载的类设置这些属性

下面这行代码可以正常工作,它可以从 application.properties 中读取值: @PostConstruct void init() 抛出 ClassNotFoundException, IOException System.out.println(context.getEnvironment().getProperty("env.host", “默认值”));

现在我正在使用另一个项目。当加载这些bean的类被初始化为另一个类的依赖项时,它还尝试在常量文件中读取相同的值

   static final String HOST_PROPERTY = "$env.host";

这个值没有从 applictaion.properties 初始化为值

【问题讨论】:

也许您可以添加一些您正在使用的代码? 我已经更新了我的问题,如果需要更多信息,请告诉我 请试试看,@Value("$env.host") private String HOST_PROPERTY; 可能是static 给你添麻烦了。 【参考方案1】:

如果你想获取 application.properties 值,你有两个选项。 1)您可以自动装配 Environment 类并将其 getProperty() 方法用作

@Autowired
Environment env;
env.getProperty("$env.host");

2)@Value注解

@Value("$env.host")
    String HOST_PROPERTY;

【讨论】:

以上是关于无法在 Spring Boot 应用程序中读取 application.properties的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 5 应用程序中响应 Spring Boot 时无法读取授权标头

无法从 JUnit 中的 Spring Boot 读取应用程序属性?

Spring Boot 无法读取 Docker 中的 application.properties

Spring Boot 配置文件图标不是小绿叶?无法读取到配置文件内容?

spring boot 读取 application.yml 中 List 类型数据

Spring Boot 无法读取 yml 属性文件