Spring Boot优雅读取配置信息 @EnableConfigurationProperties

很多时候我们需要将一些常用的配置信息比如oss等相关配置信息放到配置文件中。常用的有以下几种,相信大家比较熟悉:

1、@Value("${property}") 读取比较简单的配置信息:

2、@ConfigurationProperties(prefix = "property")读取配置信息并与 bean 绑定

下面着重讲使用@ConfigurationProperties 注解方式的两种形式
那么采用@EnableConfigurationProperties 和 注入 属性类 两种方式有什么区别?

@EnableConfigurationProperties(OssProperties.class)

@Resource

private final OssProperties ossProperties;

第一种方式 @EnableConfigurationProperties

可以看到 OssProperties 不需要加注入注解,会自动注入

原理:当 @EnableConfigurationProperties(OssProperties.class) 被使用时,Spring Boot 会自动扫描并注册 OssProperties 类作为 Spring 容器中的一个 bean。这意味着 OssProperties 类中的属性将会被自动绑定到配置文件中对应的属性上。

@EnableConfigurationProperties(OssProperties.class) 专注于启用和配置 @ConfigurationProperties 绑定的支持,通常用于将配置文件中的属性绑定到 Java 类上


第二种方式 手动添加注解注入方式


总结:

如何选择,在实际应用中,如果你只是想将配置文件中的属性绑定到一个 Java 类上,并希望 Spring Boot 自动处理这一切,那么使用 @EnableConfigurationProperties 和 @ConfigurationProperties 是更好的选择。如果你需要注入一个已经存在的 bean,不论它是如何被创建的,那么使用 @Resource 或其他注入方式(如 @Autowired)可能更合适。

推荐:10分钟搞定 SpringBoot 如何优雅读取配置文件?

相关推荐
三小河1 小时前
Agent Skill与Rules的区别——以Cursor为例
前端·javascript·后端
kali-Myon1 小时前
2025春秋杯网络安全联赛冬季赛-day1
java·sql·安全·web安全·ai·php·web
我是咸鱼不闲呀1 小时前
力扣Hot100系列20(Java)——[动态规划]总结(下)( 单词拆分,最大递增子序列,乘积最大子数组 ,分割等和子集,最长有效括号)
java·leetcode·动态规划
三小河1 小时前
前端视角详解 Agent Skill
前端·javascript·后端
清水白石0081 小时前
深入解析 LRU 缓存:从 `@lru_cache` 到手动实现的完整指南
java·python·spring·缓存
牛奔1 小时前
Go 是如何做抢占式调度的?
开发语言·后端·golang
颜酱1 小时前
二叉树遍历思维实战
javascript·后端·算法
符哥20081 小时前
C++ 进阶知识点整理
java·开发语言·jvm
Sayuanni%32 小时前
初阶_多线程1(线程含义与关键属性)
java
程序媛徐师姐2 小时前
Java基于微信小程序的模拟考试系统,附源码+文档说明
java·微信小程序·java模拟考试系统小程序·模拟考试微信小程序·模拟考试系统小程序·模拟考试小程序·java模拟考试小程序