spring 注解
1、@ConfigurationProperties 与 @Value 区别
(1)@Value 要写全路径
(2)@ConfigurationProperties 用了这个,并且指定 prefix, 那它的属性就能自动匹配了,不用再写 @Value 了
(3)@ConfigurationProperties 要用 @EnableConfigurationProperties
(4)为了使用 @ConfigurationProperties
需要在 spring boot application 上添加 EnableConfigurationProperties
的注解 (这个试了一下,不用貌似也没有大问题)
(5)@ConfigurationProperties
可以添加前缀,然后其属性就会按照变量的名称默认在 application.*
中寻找指定的变量。
(6)如果想要从其他配置文件获取配置内容,可以添加一个额外的注释 @PropertySource("classpath:xxx.yml")
(7)@ConfigurationProperties
与 @Value
的一个重大区别在于它采用比较灵活的方式寻找配置。可以看到这里的配置可以是驼峰形式,也可以是下划线分割的,还可以是中横线分割的
(8)如果用了@ConfigurationProperties,并且也指定了 prefix, 这个时候,再用 @Value的话,它会以@Value的为准(即把它的配置当全路径去匹配,会忽略 prefix, 这个时候,就会找不到,或找错的情况)
@Data @Configuration @ConfigurationProperties(prefix = "oauth.biz") public class BizConfig { // 这种会自动匹配 oauth.biz.namespace private String namespace; // 这种它会按全路径去匹配,也是可以的 @Value("${oauth.biz.bizLoginUrl}") private String bizLoginUrl; // 这个它是把 redirectUrl 当全路径去匹配,会找错或找不到,所以 @ConfigurationProperties 与 @Value 并不是共用的。 @Value("${redirectUrl}") private String redirectUrl; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南