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

相关文章

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

微信小程序(一)数据流与数据绑定

一、单向数据流和双向数据流 1、单项数据流:指的是我们先把模板写好,然后把模板和数据(数据可能来自后台)整合到一起形成HTML代码,然后把这段HTML代码插入到文档流里面 优点:数据跟踪方便,流向单一,追寻问题比较方便【主要体现:微信小程序】。 缺点:就是写起来不太方便,如果修改UI界面数据需要维护对应的model对象 2、双向数据流:值和UI是双向绑定的,大家都知道,只要UI里面的值发生

使用http-request 属性替代action绑定上传URL

在 Element UI 的 <el-upload> 组件中,如果你需要为上传的 HTTP 请求添加自定义的请求头(例如,为了通过身份验证或满足服务器端的特定要求),你不能直接在 <el-upload> 组件的属性中设置这些请求头。但是,你可以通过 http-request 属性来自定义上传的行为,包括设置请求头。 http-request 属性允许你完全控制上传的行为,包括如何构建请求、发送请

springMVC 参数绑定的注解

本文介绍了用于参数绑定的相关注解。 绑定:将请求中的字段按照名字匹配的原则填入模型对象。 SpringMVC就跟Struts2一样,通过拦截器进行参数匹配。 代码在 https://github.com/morethink/MySpringMVC URI模板变量 这里指uri template中variable(路径变量),不含queryString部分 @PathVariable

【SpringMVC学习04】SpringMVC中的参数绑定总结

众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题。 1. 参数绑定的过程 我们可以回忆一下,在struts2中,是通过在Action中定义一个成员变量来接收前台传进来的参数,而在

vue3和vue2的双向绑定原理

Vue 的双向绑定是其核心特性之一,允许数据和视图之间保持同步。在 Vue 2 和 Vue 3 中,双向绑定的实现原理有所不同。以下是两者的原理对比: Vue 2 的双向绑定原理 在 Vue 2 中,双向绑定是通过以下机制实现的: 响应式系统: Vue 2 使用 Object.defineProperty 来实现响应式数据。通过在对象的每个属性上定义 getter 和 setter,Vue