java - yml不起作用 - yml文件



Spring Boot:从YAML文件加载@Value (1)

M. Deinum是正确的,我提供的设置工作 - yml文件缩进错误,所以属性找不到。

我需要从.yml文件加载一个属性,该文件包含应用程序可以从中读取文件的文件夹的路径。

我正在使用下面的代码注入属性:

@Value("${files.upload.baseDir}")
private String pathToFileFolder;

用于开发的.yml文件位于src/main/resources/config/application.yml ,即时通过在生产中使用以下命令运行应用程序来覆盖开发设置:

java -jar app.jar --spring.config.location=/path/to/application-production.yml

Spring Boot文档说:

SpringApplication将从以下位置的application.properties文件加载属性,并将它们添加到Spring环境中:

  1. 当前目录的A / config子目录。

  2. 当前目录

  3. 一个classpath / config包

  4. 类路径根

以及:

您也可以使用YAML('.yml')文件替代“.properties”。

.yml文件包含:

{...}
files:
      upload:
        baseDir: /Users/Thomas/Code/IdeaProjects/project1/files
{...}

而我的Application类是注释与:

@SpringBootApplication
@EnableCaching

当我运行应用程序时,我得到一个异常:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'files.upload.baseDir' in string value "${files.upload.baseDir}"

我是否必须使用YamlPropertySourceLoader类或添加一个特殊的注释来启用Spring Boot中对.yml的支持?

编辑: .yml文件包含一些其他属性,这些属性通过Spring Boot成功加载,如dataSource.XXXhibernate.XXX