当前位置:  开发笔记 > 编程语言 > 正文

Spring Boot:从YAML文件加载@Value

如何解决《SpringBoot:从YAML文件加载@Value》经验,为你挑选了1个好方法。

我需要从.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环境中:

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

    当前目录

    一个classpath/config包

    类路径根

以及:

您还可以使用YAML('.mil')文件替代'.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该类或添加特殊注释才能.yml在Spring Boot中启用支持?

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



1> Thomas Schmi..:

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

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有