SpringBoot小知识(4):高级配置知识与bean的绑定

一、@EnableConfigurationProperties

@ConfigurationProperties注解在我们之前讲过,他是从配置中读取参数封装给实体类的一个注解。

在这里插入图片描述
那么@EnableConfigurationProperties是个啥呢?

@EnableConfigurationProperties 是 Spring Framework 中用于启用基于配置文件的属性绑定功能的注解。它通常与 @ConfigurationProperties 注解一起使用,用于将配置文件中的属性自动绑定到 Java 类的字段上,从而使得你可以在应用程序中方便地使用配置文件中的属性。

  1. @ConfigurationProperties: 用于标注一个 Java 类,该类的字段会自动绑定到外部配置文件(如 application.properties 或 application.yml)中的相关配置项。通过这种方式,配置项可以被注入到 Spring 容器中。
  2. @EnableConfigurationProperties: 用于启用对 @ConfigurationProperties 的支持。如果你的配置类是普通的 POJO,并且你希望 Spring 能够自动加载这些配置类,你需要使用 @EnableConfigurationProperties。

也就是说*ConfigurationProperties 里面的参数是配置文件中的参数名,而EnableConfigurationProperties的参数是你要封装的那个类的.class。
在这里插入图片描述

读取的文件

在这里插入图片描述
使用了@EnableConfigurationProperties,我们就不用在原本的class那里把它注册为Bean,可以统一的在使用的地方注册为Bean类方便我们管理。而且EnableConfigurationProperties可以用{}来包含多个class

@Configuration
@EnableConfigurationProperties({AppProperties.class, DatabaseProperties.class})
public class Config {// 其他配置类
}

二、宽松绑定

@ConfigurationProperties绑定属性支持属性名宽松绑定

YML:

在这里插入图片描述

绑定类:

在这里插入图片描述

我们可以看到,即使是有-这种的拼接,也可以读取到内容,实际上在YML文件中,_-大小写之类的都不影响绑定到实体类中的属性里面,实体类的大小写与配置文件中不是一模一样的也能绑定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/484233.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 实现无线滚动效果

目录 1.Element-plus官网中的Infinite Scroll组件说明 2.滚动条设置 3.滚动到底部的函数调用 1.Element-plus官网中的Infinite Scroll组件说明 官网链接如下所示: Infinite Scroll 无限滚动 | Element Plus 首先查看该代码,发现这个组件使用了一个…

Spring Cloud Alibaba 之 “Sentinel”

从网上下载好sentinel-dashboard-1.6.3.jar,然后执行 java -jar sentinel-dashboard-1.6.3.jar,执行成功之后在浏览器输入localhost:8080,Sentinel的登录名和密码都是sentinel,登陆成功之后看到只有一个首页。 接下来开始整合Spring Cloud Alibaba Sen…

【Android】从事件分发开始:原理解析如何解决滑动冲突

【Android】从事件分发开始:原理解析如何解决滑动冲突 文章目录 【Android】从事件分发开始:原理解析如何解决滑动冲突Activity层级结构浅析Activity的setContentView源码浅析AppCompatActivity的setContentView源码 触控三分显纷争,滑动冲突…

用友NC yerfile/down SQL注入漏洞复现(XVE-2024-34596)

0x01 产品简介 用友NC(也称用友NC6或NCC)是用友网络科技股份有限公司开发的一款企业级管理软件,旨在为企业提供全方位的管理服务。主要面向大型企业和集团公司,提供全面的财务和业务管理解决方案,助力企业实现数字化转型和高效管理。采用J2EE架构和先进开放的集团级开发平…

Linux-GPIO应用编程

本章介绍应用层如何控制 GPIO,譬如控制 GPIO 输出高电平、或输出低电平。 只要是用到GPIO的外设,都有可能用得到这些操作方法。 照理说,GPIO的操作应该是由驱动层去做的,使用寄存器操作或者GPIO子系统之类的框架。 但是&#xff0…

18 - Java 线程

简介 进程(process) 对一个程序的运行状态, 以及在运行中所占用的资源(内存, CPU)的描述; 一个进程可以理解为一个程序; 但是反之, 一个程序就是一个进程, 这句话是错的。 进程的特点: 独立性: 不同的进程之间是相互独立的, 相互之间资源…

PyQt登录小窗口实现 内服代码及知识点总结

一、登录窗口 二、实现代码 import sysfrom PyQt6.QtGui import QIcon, QPixmap, QMovie from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit#封装我的窗口类 class MyWidget(QWidget):#构造函数def __init__(self):#初始化父类super().__in…

python之Django连接数据库

文章目录 连接Mysql数据库安装Mysql驱动配置数据库信息明确连接驱动定义模型在模型下的models.py中定义表对象在settings.py 中找到INSTALLED_APPS添加创建的模型 测试testdb.py中写增删改查操作urls.py添加请求路径启动项目进行测试 连接Mysql数据库 安装Mysql驱动 pip inst…

程序员需要具备哪些知识?

程序员需要掌握的知识广泛而深厚,这主要取决于具体从事的领域和技术方向。不过,有些核心知识是共通的,就像建房子的地基一样,下面来讲讲这些关键领域: 1. 编程语言: 无论你是搞前端、后端、移动开发还是嵌…

Java项目实战II基于微信小程序的电子竞技信息交流平台的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着互联网技术的飞速发展…

【词向量表示】Item2Vec、DeepWalk、Node2vec、EGES词向量生成算法

前言:一般来说用户Embedding在推荐系统中可以通过物品的Embedding向量平均或者聚类实现,因此物品的Embedding算法的效果成为重中之重。这篇文章是笔者阅读《深度学习推荐系统》第四章Embedding技术在推荐系统中的应用的学习笔记。本篇文章主要介绍传统词…

【AI工具】强大的AI编辑器Cursor详细使用教程

目录 一、下载安装与注册 二、内置模型与配置 三、常用快捷键 四、项目开发与问答 五、注意事项与技巧 参考资料 近日,由四名麻省理工学院(MIT)本科生共同创立的Anysphere公司宣布,其开发的AI代码编辑器Cursor在成立短短两年…

交易所 Level-2 历史行情数据自动化导入攻略

用户部署完 DolphinDB 后,需要将历史股票数据批量导入数据库,再进行数据查询、计算和分析等操作。DolphinDB 开发了 ExchData 模块,主要用于沪深交易所 Level-2 行情原始数据的自动化导入,目前已支持的数据源包括: 沪…

zotero中pdf-translate插件和其他插件的安装

1.工具–》插件 2.找插件 3.点击之后看到一堆插件 4.找到需要的,例如pdf-translate 5.点击进入,需要看一下md文档了解下,其实最重要的就是找到特有的(.xpi file) 6.点击刚刚的蓝色链接 7.下载并保存xpi文件 8.回到zotero,安装并使…

5.12【机器学习】卷积模型搭建

softmax输出时不可能为所有模型提供精确且数值稳定的损失计算 model tf.keras.models.Sequential([tf.keras.layers.Flatten(input_shape(28, 28)),tf.keras.layers.Dense(128, activationrelu),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(10) ]) mnist tf.keras…

头歌 Linux之线程管理

第1关:创建线程 任务描述 通常我们编写的程序都是单进程,如果在一个进程中没有创建新的线程,则这个单进程程序也就是单线程程序。本关我们将介绍如何在一个进程中创建多个线程。 本关任务:学会使用C语言在Linux系统中使用pthrea…

工业机器视觉-基于深度学习的水表表盘读数识别

字轮数字识别、指针读数识别(角度换算)、根据指针角度进行读数修正、根据最高位指针(x0.1)读数对字轮数字进行修正、得到最终读数。 基于深度学习的目标检测技术和OpenCV图像处理技术,可识别所有类型的表盘机械读数。

超详细MacBook Pro(M1)配置GO语言环境(图文超详细版)

前提 当我第一次使用MacBook配置Go语言环境时,网上的资料错综复杂,部分资料对于第一次使用MacBook的小白们非常不友好,打开终端时,终端的位置对应的访达中的位置不是很清楚,因此才有了这篇文章,该文章通过…

大数据项目-Django基于聚类算法实现的房屋售房数据分析及可视化系统

《[含文档PPT源码等]精品Django基于聚类算法实现的房屋售房数据分析及可视化系统》该项目含有源码、文档、PPT、配套开发软件、软件安装教程课程答疑等! 数据库管理工具:phpstudy/Navicat或者phpstudy/sqlyog 后台管理系统涉及技术: 后台使…

魔改版kali分享(新增50多种渗透工具)

网盘链接 我用夸克网盘分享了「Kali Linux 定制化魔改系统」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/dda56f7e3431 提取码:…