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 如何优雅读取配置文件?

相关推荐
老毛肚15 小时前
Spring boot 特性和自写Reids组件
java·spring boot·后端
蝎子莱莱爱打怪15 小时前
👍🏻👍🏻6年381颗芯片+韬定律,华为重新定义半导体,为什么还有人喷???
后端·面试·程序员
极光代码工作室15 小时前
基于SpringBoot的课程管理系统
java·springboot·web开发·后端开发
JustNow_Man15 小时前
【opencode】安装使用daytona沙箱插件
android·java·javascript
武子康16 小时前
Java-05 深入浅出 MyBatis动态SQL与参数拼接完全指南
java·spring boot·后端
Kir1to16 小时前
RabbitMQ消息可靠性三板斧
后端
过期动态16 小时前
【LeetCode 热题 100】字母异位分组
java·算法·leetcode·职场和发展·哈希算法
辰海Coding16 小时前
MiniSpring框架学习-为什么一个请求访问 /helloworld,最后能调用到某个 Controller 方法?原始 MVC实现
java·学习·程序人生·spring·mvc
ServBay16 小时前
Google I/O 2026 Antigravity 更新与 SDK
后端·ai编程·google io
驭渊的小故事16 小时前
多线程01(线程状态和线程的sleep,线程终止(Interrupt)的小关联)
java·jvm·算法