ConfigurationProperties之宽松绑定

2023-10-31 18:28

本文主要是介绍ConfigurationProperties之宽松绑定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前面我们讲了ConfigurationProperties
但这个东西只能匹配小写
我这样写就正常
在这里插入图片描述
但当我们将配置文件和属性类都改成大写时
配置文件一切正常
在这里插入图片描述
但ConfigurationProperties就开始报错了
在这里插入图片描述
这涉及到一个知识点 宽松绑定 也叫做 松散绑定

其实 ConfigurationProperties提供给我们了非常灵活自由的处理方式
在这里插入图片描述
我们这里看到一个绑定对象内部的字段 这里以 units为例
在这里插入图片描述
这里 我们将 属性类的units改成 小驼峰命名法 uniTs
在这里插入图片描述
配置文件保持不变

然后我们条件装配并运行这个类型
在这里插入图片描述
我们会发现 内容依旧装配上去了

很多人会想 不就是不区分大小写吗?很多东西都能实现呀 那我们来个狠的
我们配置文件改成这样
在这里插入图片描述
我们属性类不做任何调整 重新运行代码
在这里插入图片描述
可以看到 穿插了 下划线与中划线 依旧没有问题

我们狂一点
配置文件改纯大写 然后下划线分割
在这里插入图片描述
然后我们属性类保持不动
再次运行代码
在这里插入图片描述
会发现依旧没有出问题

简单说 你写的下划中划线 是直接被忽略的 然后 大小写它也能处理 只要名称的内容是一致的 就会匹配得到

最好的模式 是 内容-内容-内容
这种叫 烤肉串模式 因为 用中划线 看着像一根烤肉串 比如 data-user-name
下划线与驼峰 常量也都可以 官方的话最推荐的还是烤肉串的写法

在这里插入图片描述
但这种宽松绑定 仅 ConfigurationProperties 大多数注解不能这样写
就例如之前的 @Value

这篇关于ConfigurationProperties之宽松绑定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/317259

相关文章

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

解读@ConfigurationProperties和@value的区别

《解读@ConfigurationProperties和@value的区别》:本文主要介绍@ConfigurationProperties和@value的区别及说明,具有很好的参考价值,希望对大家... 目录1. 功能对比2. 使用场景对比@ConfigurationProperties@Value3. 核

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

SpringMVC入参绑定特别注意

1.直接在controller中定义一个变量,但是此种传输方式有一个限制就是参数名和请求中的参数名必须保持一致,否则失效。 @RequestMapping("test2")@ResponseBodypublic DBHackResponse<UserInfoVo> test2(String id , String name){UserInfoVo userInfoVo = new UserInf

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

react笔记 8-16 JSX语法 定义数据 数据绑定

1、jsx语法 和vue一样  只能有一个根标签 一行代码写法 return <div>hello world</div> 多行代码返回必须加括号 return (<div><div>hello world</div><div>aaaaaaa</div></div>) 2、定义数据 数据绑定 constructor(){super()this.state={na