前面我们讲了ConfigurationProperties
但这个东西只能匹配小写
我这样写就正常
但当我们将配置文件和属性类都改成大写时
配置文件一切正常
但ConfigurationProperties就开始报错了
这涉及到一个知识点 宽松绑定 也叫做 松散绑定
其实 ConfigurationProperties提供给我们了非常灵活自由的处理方式
我们这里看到一个绑定对象内部的字段 这里以 units为例
这里 我们将 属性类的units改成 小驼峰命名法 uniTs
配置文件保持不变
然后我们条件装配并运行这个类型
我们会发现 内容依旧装配上去了
很多人会想 不就是不区分大小写吗?很多东西都能实现呀 那我们来个狠的
我们配置文件改成这样
我们属性类不做任何调整 重新运行代码
可以看到 穿插了 下划线与中划线 依旧没有问题
我们狂一点
配置文件改纯大写 然后下划线分割
然后我们属性类保持不动
再次运行代码
会发现依旧没有出问题
简单说 你写的下划中划线 是直接被忽略的 然后 大小写它也能处理 只要名称的内容是一致的 就会匹配得到
最好的模式 是 内容-内容-内容
这种叫 烤肉串模式 因为 用中划线 看着像一根烤肉串 比如 data-user-name
下划线与驼峰 常量也都可以 官方的话最推荐的还是烤肉串的写法
但这种宽松绑定 仅 ConfigurationProperties 大多数注解不能这样写
就例如之前的 @Value