gpt4 book ai didi

java - Spring 启动 : Load @Value from YAML file

转载 作者:IT老高 更新时间:2023-10-28 13:47:46 25 4
gpt4 key购买 nike

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

我正在使用以下代码注入(inject)属性:

@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 will load properties from application.properties files in the following locations and add them to the Spring Environment:

  1. A /config subdirectory of the current directory.

  2. The current directory

  3. A classpath /config package

  4. The classpath root

还有:

You can also use YAML ('.yml') files as an alternative to '.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

最佳答案

例如:application.yml

key:
name: description here

你的类(class):

@Value("${key.name}")
private String abc;

关于java - Spring 启动 : Load @Value from YAML file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com