Tho*_*idt 24 java spring yaml spring-boot
我需要从.yml文件加载一个属性,该文件包含应用程序可以从中读取文件的文件夹的路径.
我正在使用以下代码注入属性:
@Value("${files.upload.baseDir}")
private String pathToFileFolder;
Run Code Online (Sandbox Code Playgroud)
.yml用于开发的文件位于src/main/resources/config/application.yml生成器中,使用以下命令运行应用程序,以覆盖开发设置:
java -jar app.jar --spring.config.location=/path/to/application-production.yml
Run Code Online (Sandbox Code Playgroud)
Spring Boot文档说:
SpringApplication将从以下位置的application.properties文件加载属性,并将它们添加到Spring环境中:
当前目录的A/config子目录.
当前目录
一个classpath/config包
类路径根
以及:
您还可以使用YAML('.mil')文件替代'.properties'.
该.yml文件包含:
{...}
files:
upload:
baseDir: /Users/Thomas/Code/IdeaProjects/project1/files
{...}
Run Code Online (Sandbox Code Playgroud)
我的Application班级注释为:
@SpringBootApplication
@EnableCaching
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我得到一个例外:
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'files.upload.baseDir' in string value "${files.upload.baseDir}"
Run Code Online (Sandbox Code Playgroud)
我是否必须使用YamlPropertySourceLoader该类或添加特殊注释才能.yml在Spring Boot中启用支持?
编辑:该.yml文件包含一些其他属性,这些属性由Spring Boot成功加载,如dataSource.XXX或hibernate.XXX.
小智 15
例如:application.yml
key:
name: description here
Run Code Online (Sandbox Code Playgroud)
你的班:
@Value("${key.name}")
private String abc;
Run Code Online (Sandbox Code Playgroud)
我发现上面的内容对我不起作用,因为我尝试访问构造函数中的变量。但在施工时,价值尚未注入。最终我使用此解决方法使其正常工作:https://mrhaki.blogspot.com/2015/04/spring-sweets-using-value-for.html
也许这对其他人有帮助。
M. Deinum是正确的,我提供的设置正在工作- yml文件缩进错误,因此找不到该属性。
| 归档时间: |
|
| 查看次数: |
52957 次 |
| 最近记录: |