springboot @ConfigurationProperties注册源码解析-松散绑定

参考:https://wenku.baidu.com/view/ccfcf417598102d276a20029bd64783e09127def.html        https://blog.csdn.net/londa/article/details/107007686

一、源码解析(对应springboot源码查看)

  org.springframework.boot.context.properties.source.ConfigurationPropertyName类重写了hashcode和equals,是为了保证属性名称与配置文件中(如yml)的定义属性名称的值相同。因为涉及Map,所以要重写hashcode和equals方法。具体参考hashcode和equals关系:https://zhuanlan.zhihu.com/p/347342971

二、松散的绑定约束使用

   Spring Boot将Environment属性绑定到@ConfigurationProperties Bean时会使用一些宽松的规则,所以Environment属性名和Bean属性名不需要精确匹配。

   比如在对象User中有一个firstName属性,那么在配置文件中对应如下配置项均会匹配:

user.firstName // 标准驼峰命名语法
user.first-name // 短横线隔开表示,推荐用于.properties和.yml文件中
user.first_name // 下划线表示,用于.properties和.yml文件的可选格式
USER_FIRST_NAME // 大写形式,推荐用于系统环境变量

备注:

  我在使用jod-converter jar包时,发现ym配置文件l的jod converter配置属性(office-home)与jar包中的属性名(String officeHome)不一致,很不理解,经过调研,发现原来是springboot实现的属性松散绑定造成的,这样清晰多了。

posted @   wangle100  阅读(248)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示