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;
}

 

 


 

posted @   aaacarrot  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示