弹簧启动:从 YAML 文件加载@Value
2022-09-01 01:08:37
我需要从文件中加载一个属性,该文件包含应用程序可以从中读取文件的文件夹的路径。.yml
我使用以下代码来注入属性:
@Value("${files.upload.baseDir}")
private String pathToFileFolder;
用于开发的文件位于 下,im 在生产环境中使用以下命令运行应用程序,以覆盖开发设置:.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 环境中:
当前目录的 /config 子目录。
当前目录
类路径 /配置包
类路径根
以及:
您还可以使用 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}"
我是否必须使用该类或添加特殊注释才能在 Spring Boot 中启用 对 的支持?YamlPropertySourceLoader
.yml
编辑:该文件包含一些其他属性,这些属性由Spring Boot成功加载,如 或 。.yml
dataSource.XXX
hibernate.XXX