java - @ConfigurationProperties vs @PropertySource vs @Value

标签 java spring spring-boot

我是 Spring/Spring Boot 新手。我想使用application.properties的键值对数据/application.yml在Java文件中。我知道我们可以使用@Value在任何 POJO 类中设置 application.properties 中字段的默认值或application.yml文件。

Q1)但是为什么我们需要另外两个呢? @ConfigurationProperties@PropertySource .

第二季度)@ConfigurationProperties@PropertySource ,两者都可以用来加载application.properties中提到的外部数据。或application.yml文件?或者有什么限制吗?

PS:我尝试在网上搜索但没有得到明确的答案。

最佳答案

@ConfigurationProperties 用于 POJO bean 将属性映射到其字段或 setter 。然后您可以使用该 bean 来访问应用程序逻辑中的属性值。

@PropertySource 用于引用属性文件并将其加载到 Spring 环境中(@ConfigurationProperties 或 @Value 可能会使用它)。

@Value 是将特定属性值通过其键注入(inject)到变量(成员字段或构造函数参数)中。

关于java - @ConfigurationProperties vs @PropertySource vs @Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58691325/

相关文章:

spring-boot - 带有松弛度的 Spring Boot Oauth2

java - 已更改为 1.6

java - Logback 仅在文件大小上滚动

java - .NET 等效的 Java 工具和库

java - 将 Spring 的 @Scheduled 注释与特定的执行程序一起使用

java - ActiveMq 结合 Tomcat

java - Selenium Webdriver Java : Checking if a piece of script is present

java - Spring - 根据 application.properties 中的值加载自定义属性文件

java - MockIntegrationMessage 在缓存上下文时不起作用

spring - 在每个 Spring 计划(@Scheduled)运行之前重置状态