当前位置: 首页 > 面试题库 >

Spring Boot:从YAML文件加载@Value

鄢雅畅
2023-03-14
问题内容

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

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

  2. 当前目录

  3. 类路径/ 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该类或添加特殊注释以.yml在Spring Boot中启用对该功能的支持?

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


问题答案:

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



 类似资料:
  • 我需要从文件加载一个属性,该文件包含应用程序可以从中读取文件的文件夹的路径。 当前目录 类路径/配置包 类路径根 是否必须使用类或添加一个特殊注释来启用Spring Boot中对的支持? 编辑:文件包含一些其他属性,这些属性由Spring Boot成功加载,如或。

  • 在Spring,如果我们有两个.yaml文件作为。(包含在应用程序中) 如果这个配置的属性类类似于- 则仅从一个文件加载“流”,即流。size()给出2.(remote04,remote05。这取决于application.yaml中配置文件的顺序) 但如果我将yamls文件更改为- 和属性类 现在hashmap将有4个条目。i、 e.流量。size()给出4 那么,这是否意味着Spring不会从

  • 我必须调整一个有应用程序的springboot应用程序。配置应用程序属性的yaml文件。 使用java类文件中的注释映射属性,以读取值@ConfigurationProperties(prefix=“propName”) 现在的要求是我需要有另一个文件称为application-profile-2.yml和重命名application.ymlapplication-profile-1.yml,这些

  • 我在应用程序中有我的配置。类路径根中的yml文件(src/main/resources/)。当我正常启动应用程序时,配置加载良好。然而,在我的测试中,应用程序。yml文件根本没有加载。 我的测试的标题如下所示: 配置类: 当我调试应用程序时,我看到yml文件被加载到ConfigFileApplication ationListener中,但在测试中没有调用ConfigFileApplication

  • 使用Spring Boot 1.3.0.Release 编辑:一种工作方法是手动操作:

  • 在我的项目中,我想使用特定于环境的属性文件。例如,如果我在开发中运行它,它应该使用应用程序。dev.properties,对于生产,它应该使用应用程序。产品属性等等。 我有下面两个文件在我的资源文件夹。 application.properties(用于生产) application.dev.properties(用于开发) 我有一个属性像下面的每个文件。 为了刺激 给德夫 我有一门课,如下所示