重学SpringBoot3-@EnableConfigurationProperties注解

在这里插入图片描述

重学SpringBoot3-@EnableConfigurationProperties注解

  • 1. 引言
  • 2. @EnableConfigurationProperties 的作用
  • 3. 使用示例
  • 4. 总结

1. 引言

Spring Boot 提供了一种便捷的方式来管理和校验应用程序的配置,即通过类型安全的配置属性。@EnableConfigurationProperties 注解在这里扮演了重要的角色,它使得 Spring Boot 能够将外部配置文件中的属性绑定到强类型的 Java Beans 上。

2. @EnableConfigurationProperties 的作用

@EnableConfigurationProperties 注解的主要作用是启用对 @ConfigurationProperties 注解类的支持。这包括:

  • 将配置文件(如 application.properties 或 application.yml)中的属性绑定到带有 @ConfigurationProperties 注解的类上。
  • 在需要时自动注册这些类为 Spring 上下文中的 Beans。
  • 提供详尽的属性绑定结果(包括异常报告)。

通过使用 @EnableConfigurationProperties,开发者可以轻松实现外部配置的注入和管理,提高代码的模块化和可维护性。

3. 使用示例

下面通过一个示例来说明如何在 Spring Boot 3 应用中使用 @EnableConfigurationProperties

假设你有一个配置属性类 AppProperties(可以是第三方包中的配置属性类,无法用@Component扫描):

@ConfigurationProperties(prefix = "app")
public class AppProperties {private String name;private String description;// standard getters and setters
}

在这个类中,prefix = "app" 指定了属性名称的前缀。因此,namedescription 字段将分别绑定到 app.nameapp.description 配置属性上。

要启用这个配置属性类,你可以在任何配置类上使用 @EnableConfigurationProperties 注解:

@SpringBootApplication
@EnableConfigurationProperties(AppProperties.class)
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

在这个例子中,@EnableConfigurationProperties(AppProperties.class) 注解使得 Spring Boot 自动将 application.properties 中的相关属性绑定到 AppProperties 类的实例上,并将该实例注册为 Spring 上下文的一个 Bean。

现在,你可以在应用中的任何位置注入 AppProperties

@Service
public class MyService {private final AppProperties appProperties;@Autowiredpublic MyService(AppProperties appProperties) {this.appProperties = appProperties;}public void someMethod() {System.out.println("App name: " + appProperties.getName());// 使用 appProperties 的其他方法}
}

在这个服务类中,AppProperties 通过构造器注入,使得你可以在需要时使用配置属性。

4. 总结

通过使用 @EnableConfigurationProperties 注解,Spring Boot 应用可以非常方便地将外部配置映射到强类型的 Java Beans 上,从而使配置更加易于管理和维护。这种方法不仅提高了代码的清晰度和安全性,还降低了错误配置的风险。在 Spring Boot 3 中,这一机制仍然是管理和使用配置属性的推荐方式。

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

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

相关文章

[GXYCTF2019]BabyUpload1 -- 题目分析与详解

目录 一、题目分析 1、判断题目类型: 2、上传不同类型的文件进行测试: 二、题目详解 1、写出.htaccess文件: 2、.htaccess 文件配合 .jpg 上传: 3、利用 中国蚁剑/中国菜刀 获取flag: 一、题目分析 1、判断题目…

禅道:提bug、管理case 7.0

一、禅道的介绍 (1)定义禅道是一个项目管理工具,也是一个bug管理工具,还是一个用例管理工具。 (2)作用:为了解决众多企业在管理中出现混乱,无序的现象,开发出来 &…

EchoServer回显服务器简单测试

目录 工具介绍 工具使用 测试结果 工具介绍 github的一个开源项目,是一个测压工具 EZLippi/WebBench: Webbench是Radim Kolar在1997年写的一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的…

使用 MinIO 对象存储,创建一个类似网盘的应用

Linux 的 MinIO 对象存储 MinIO 介绍 MinIO 是一个对象存储解决方案,提供与 Amazon Web Services S3 兼容的 API,并支持所有核心 S3 功能。MinIO 可以部署在任何地方。 Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,提供…

Kafka安全模式之身份认证

一、简介 Kafka作为一个分布式的发布-订阅消息系统,在日常项目中被频繁使用,通常情况下无论是生产者还是消费者只要订阅Topic后,即可进行消息的发送和接收。而kafka在0.9.0.0版本后添加了身份认证和权限控制两种安全服务,本文主要…

逻辑回归与决策边界解析

目录 前言1 逻辑回归基础1.1 Sigmoid函数:打开分类之门1.2 决策函数:划定分类界限1.3 逻辑回归详解 2 决策边界2.1 线性决策边界2.2 非线性决策边界2.3 决策边界的优化 3 应用与实例3.1 垃圾邮件分类:精准过滤3.2 金融欺诈检测:保…

张俊将出席用磁悬浮技术改变生活演讲

演讲嘉宾:张俊 空压机销售总监 亿昇(天津)科技有限公司 演讲题目:用磁悬浮技术改变生活 会议简介 “十四五”规划中提出,提高工业、能源领城智能化与信息化融合,明确“低碳经济”新的战略目标,热能产业是能源产业和…

逆向案例四:360k静态和精灵数据动态AES解密,用js的方法

一、360K 网页链接:https://www.36kr.com/p/2672600261670407 页面中有静态的需要解密的内容,确定html包,确定方法 1.1方法步骤 在下方的搜索中输入decrypt(或者关键字window.initialState ,进入js文件 在AES.decrypt处打上断点&#xff0…

Tomcat基础及与Nginx实现动静分离,搭建高效稳定的个人博客系统

目录 引言 一、TOMCAT基础功能 (一)自动解压war包 (二)状态页 1.登录状态页 2.远程登录 (三)服务管理界面 (四)Host虚拟主机 1.设置虚拟主机 2.建立站点目录与文件 二、实…

【IC前端虚拟项目】inst_buffer子模块DS与RTL编码

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 需要说明一下的是,在我所提供的文档体系里,并没有模块的DS文档哈,因为实际项目里我也不怎么写DS毕竟不是每个公司都和HISI一样对文档要求这么严格的。不过作为一个培训的虚拟项目,还是建议在时间充裕…

6U VPX全国产飞腾D2000/8核+复旦微FPGA信息处理主板

产品特性 产品功能 飞腾计算平台,国产化率100% VPX-MPU6503是一款基于飞腾D2000/8核信息处理主板,采用由飞腾D2000处理器飞腾X100桥片的高性能计算机模块,双通道16G贴装内存,板载128G 固态SSD;预留固态盘扩展接口&…

Image Fusion via Vision-Language Model【文献阅读】

阅读目录 文献阅读AbstractIntroduction3. Method3.1. Problem Overview3.2. Fusion via Vision-Language Model 4. Vision-Language Fusion Datasets5. Experiment5.1Infrared and Visible Image Fusion 6. Conclusion个人总结 文献阅读 原文下载:https://arxiv.or…

ScanDomainEuorg:批量查询 eu.org 域名注册情况(附带源码)

引言 eu.org 很长时间都没有审批了,但是我觉得只是时间长短问题,早晚会再次审批的。 既然如此,大可以未雨绸缪一般,趁着大家对其“失望”的时间段,看看有哪些好看的前缀没有被注册。 原理 灵感来源于 域名 .eu.org…

Python推导式大全与实战:精通列表、字典、集合和生成器推导式【第115篇—python:推导式】

Python推导式大全与实战:精通列表、字典、集合和生成器推导式 Python语言以其简洁、优雅的语法而闻名,其中推导式是其独特之处之一。推导式是一种在一行代码中构建数据结构的强大方式,它涵盖了列表、字典、集合和生成器。本篇博客将全面介绍…

解决 MySQL 未运行但锁文件存在的问题

查看mysql状态时,显示错误信息"ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists"。 解决步骤 1、检查 MySQL 进程是否正在运行 在继续之前,我们首先需要确定 MySQL 进程是否正在运行。我们可以使用以下命令检查…

BUGKU bp

打开环境,他提示了弱密码top1000,随便输入密码123抓包爆破 发现长度都一样,看一下响应发现一段js代码,若r值为{code: bugku10000},则会返回错误,通过这一句“window.location.href success.php?coder.cod…

JAVAEE初阶 JVM(二)

垃圾回收和双亲委派模型 1.双亲委派模型2.垃圾回收机制(1) 识别垃圾1.引用计数2.可达性分析 (2) 销毁垃圾1.标记清除2.复制算法3.标记整理 3.分代回收 1.双亲委派模型 描述了如何查找.class文件的策略. 同时JVM中有专门进行类加载的操作,有一个模块,叫做类加载器. 上述就是为了…

数据库-第二/三章 关系数据库和标准语言SQL【期末复习|考研复习】

前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下计数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言第二、三章 关系数据库和标准语言SQL2.1 关系2…

论文阅读-CheckFreq:频繁、精细的DNN检查点操作。

论文名称:CheckFreq: Frequent, Fine-Grained DNN Checkpointing. 摘要 训练深度神经网络(DNNs)是一项资源密集且耗时的任务。在训练过程中,模型在GPU上进行计算,重复地学习权重,持续多个epoch。学习到的权重存在GPU内存中&…

视频在线压缩

video2edit 一款免费的在线视频编辑软件,可以进行视频合并、视频剪辑、视频压缩以及转换视频格式等。 链接地址:在线视频编辑器和转换器 - 编辑,转换和压缩视频文件 打开视频压缩页面,上传想要压缩视频,支持MP4&…