慎气 发表于 2025-11-6 16:00:03

@ConfigurationProperties的三种正确使用方式

三种正确使用 @ConfigurationProperties 的方式:

1. 使用 @EnableConfigurationProperties 注册

在某个配置类(通常是主启动类或 @Configuration 类)上添加 @EnableConfigurationProperties(YourPropertiesClass.class):
@SpringBootApplication
@EnableConfigurationProperties(MyProperties.class)
public class MyApp {
    public static void main(String[] args) {
      SpringApplication.run(MyApp.class, args);
    }
}对应的属性类:
@ConfigurationProperties(prefix = "my")
public class MyProperties {
    private String name;
    // getter/setter
}注意:此时 MyProperties 不需要加 @Component。
2. 将属性类本身标记为 Spring 组件(如 @Component)

@Component@ConfigurationProperties(prefix = "my")
public class MyProperties {
    private String name;
    // getter/setter
}这样 Spring 在组件扫描时会自动注册它。
3. 使用 @ConfigurationPropertiesScan 自动扫描

在主类或配置类上添加 @ConfigurationPropertiesScan(Spring Boot 2.2+ 支持):
@SpringBootApplication
@ConfigurationPropertiesScan // 默认扫描当前包及子包
public class MyApp {
    // ...
}然后你的属性类只需:
@ConfigurationProperties(prefix = "my")
public class MyProperties {
    private String name;
    // getter/setter
}注意:此时 MyProperties 不能加 @Component,但必须位于被 @ConfigurationPropertiesScan 扫描到的包路径下。
常见错误原因


[*]你写了 @ConfigurationProperties 类,但没有用以上任一方式注册。
[*]用了 @ConfigurationPropertiesScan,但属性类不在扫描路径下。
[*]同时加了 @Component 和 @EnableConfigurationProperties,虽然可能能工作,但属于冗余甚至可能冲突(不推荐)。
推荐做法(Spring Boot 2.2+)

使用 @ConfigurationPropertiesScan + 纯 @ConfigurationProperties 类(不加 @Component),更清晰、解耦。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

辖瑁地 发表于 2025-11-14 12:22:23

感谢分享,下载保存了,貌似很强大

端木茵茵 发表于 2025-11-24 13:10:18

感谢发布原创作品,程序园因你更精彩

盗衍 发表于 2025-11-28 11:00:05

这个好,看起来很实用

玲液 发表于 2026-1-8 18:53:35

yyds。多谢分享

韶侪 发表于 2026-1-12 20:05:09

收藏一下   不知道什么时候能用到

均浇 发表于 2026-1-13 23:05:33

这个好,看起来很实用

蔓好 发表于 2026-1-21 08:40:11

分享、互助 让互联网精神温暖你我

表弊捞 发表于 2026-1-22 16:26:05

感谢分享,学习下。

嶝扁 发表于 2026-1-22 22:27:24

前排留名,哈哈哈

创蟀征 发表于 2026-1-23 04:10:17

谢谢分享,试用一下

锺冰洁 发表于 2026-1-23 10:18:03

感谢分享,学习下。

癖艺泣 发表于 2026-1-25 05:25:20

前排留名,哈哈哈

公西颖初 发表于 2026-1-26 11:40:12

这个好,看起来很实用

准挝 发表于 2026-1-26 14:42:25

前排留名,哈哈哈

均浇 发表于 2026-1-29 03:13:06

感谢分享,学习下。

愤血冒 发表于 2026-1-30 08:19:22

这个好,看起来很实用

宇文之 发表于 2026-2-3 10:36:48

新版吗?好像是停更了吧。

劳暄美 发表于 2026-2-5 03:07:07

感谢分享,下载保存了,貌似很强大

姬宜欣 发表于 2026-2-7 09:55:44

感谢分享
页: [1] 2
查看完整版本: @ConfigurationProperties的三种正确使用方式