SpringBoot - @ConfigurationProperties注解使用详解

【Springboot】注解@ConfigurationProperties让配置整齐而简单 1 简介 前面我们用一篇文章《【Spring】只想用一篇文章记录@Value的使用,不想再找其它了(附思维导图)》 详细讲解了在Spring中如何使用@Value来实现我们对配置的需求,它功能强大、使用方便。但它也是有它的局限性的,比如对于邮件服务,我们配置有: mail.hostname=smtp.qq.com mail.username=larry@qq.com mail.password=1... 阅读详情
AI摘要

本文详细介绍了@ConfigurationProperties注解在Spring Boot中用于配置绑定的作用,它能将配置文件中的属性与Bean对象自动绑定。文章通过三种不同的方式展示了如何在@Component、@Configuration和@Bean上使用该注解,并提供了配置对象的示例代码和配置文件内容。同时,提到了支持的数据校验和复杂数据类型的绑定,使得配置管理更加便捷。

@ConfigurationProperties注解的作用是什么?

将标注了@ConfigurationProperties注解的Spring容器中的Bean与配置文件中的属性进行一一绑定,用于更加快速、方便的读取配置文件的内容。
也就是:先将属性对象注册到Spring容器中,再进行属性的绑定。

@ConfigurationProperties注解可以搭配使用的注解有哪些?

只要能够将属性对象注册到Spring容器中的注解都可以搭配使用。
@RestController、@Service、@Repository、@Component、@Configuration、@Bean都可以和@ConfigurationProperties注解搭配使用。

@ConfigurationProperties注解如何使用?

1.需要将配置对象类注入到Spring容器中,一般使用@Component(组件类)进行注入,当然@RestController、@Service、@Repository都属于@Component,因为他们有更准确的意义,所以一般使用@Component;或者不使用组件类,而是在启动类上使用@EnableConfigurationProperties(DroolsProperties.class),将配置对象类注入到Spring容器中;或者在定义Bean的时候将配置信息和配置对象的属性进行一一绑定。
2.需要指定前缀,用于表示该前缀下面的配置信息需要和配置对象的属性进行一一绑定;
3.只能加载全局配置文件(application.yml/.properties,application-XXX.yml/.properties);
4.支持 数据校验,如:不能为空,长度,正则等校验;
5.支持复杂的数据类型,如:list、map;

①. 使用@Component + @ConfigurationProperties(prefix = “spring.drools”),这两个注解都标注在配置对象上。

DroolsProperties.java如下:

@Data
@Component
@ConfigurationProperties(prefix = "spring.drools")
public class DroolsProperties {
   
   

    // 规则文件和决策表的路径(多个目录使用逗号分割)
    private String path;

    // 更新缓存的轮询周期 - 单位:
SpringBoot中@ConfigurationProperties对于多层嵌套参数的正确加载方法 SpringBoot中@ConfigurationProperties对于多层嵌套参数的正确加载方法 今天想重构一下Kafka代码,将之前用@Value引入的一些参数全部替换掉,因为可读性和维护性太差,这是以前的样子。 @Value("${spring.kafka.bootstrap-servers}") private String servers; @Value("${sp... 阅读详情

相关推荐

SpringBoot中@ConfigurationProperties的使用

ConfigurationProperties是springboot提供读取配置文件中属性的一个注解,它是实现了BeanPostProcessor接口,在bean被实例化后,会调用后置处理,递归的查找属性,通过。1、如果是多个属性映射,而且经常被复用,推荐使用 @ConfigurationProperties,此方式无需给默认值,读取不到属性默认为空。2、如果只读取单个属性则推荐使用 @Value,@Value支持spel表达式,必须给默认值,否则读取不到属性会报错。通常是作用在配置类或组件类上面。

hkl_Forever的博客 3694

保姆级教程:用Labelme标注车辆关键点,并一键转成YOLOv8-pose训练格式

本文提供了一份详细的车辆底盘关键点标注教程,从使用Labelme进行标注到一键转换为YOLOv8-pose训练格式的全流程指南。特别针对工业检测和自动驾驶场景,分享了标注规范、格式转换脚本及常见问题解决方案,帮助开发者高效准备训练数据并优化模型性能。

weixin_27419879的博客 309

嵌入式开发语言-C语言编程

C语言编程概述环境在Windows上构建C语言的环境安装在Mac上构建C语言的环境安装 概述 “C语言”被称为适合嵌入式系统开发的编程语言之一。 C语言在一般的编程中也是熟悉的开发语言,但实际上,如果试着使用C语言制作微型计算机的控制程序等,就必须使用与“普通的C程序”不同的使用方法。 作为一般的C语言的学习方法,使用“printf”“scanf”等标准函数的程序开发是固定的,但这些都是以UNIX和Windows等环境上的应用程序开发为前提的。 对此,没有显示器和键盘的嵌入式系统的微型计算机控制程序,该如何

编程老王 7979

从课堂笔记到动手实践:用Multisim仿真高频谐振功放(丙类)的完整流程

本文详细介绍了使用Multisim仿真高频谐振功放(丙类)的完整流程,从仿真环境准备到电路搭建、偏置网络设计、信号注入与波形观测,再到效率优化与性能验证。通过14个关键操作步骤,帮助读者将高频电子线路的理论知识转化为动手实践,深入理解丙类功放的非线性工作状态和效率优化技巧。

weixin_30701575的博客 521

隐语第四课:快速上手-SecretFlow的安装和部署

隐语课程,继续学习隐私计算技术

weixin_41467180的博客 2509

【AI智能体】Skills 智能体驱动开发从使用到项目实战详解

Skills 智能体驱动开发从使用到项目实战详解

congge 6612

网规第三版:第4章网络资源设备(完结)

第 4 章 网络资源设备 调整内容: 更新主流网络设备(交换机、路由器、防火墙)的技术参数与选型标准 增加国产化网络设备与信创产品的相关内容 精简已淘汰的设备类型与技术指标

鹿鸣天涯 268

【用unity实现100个游戏之2】复刻实现经典2d平台跳跃游戏《蔚蓝 Celeste》(附工程源码)

蔚蓝》是一款备受好评的独立游戏,由游戏开发工作室开发并由发行。这款游戏于2016年首次发布,并在玩家和评论界收获了广泛赞誉。蔚蓝以其独特的艺术风格和引人入胜的故事而著称。游戏以深海为背景,玩家将扮演一个能够探索水下世界的神秘生物。游戏通过惊人的视觉表现和动态的海洋生态系统为玩家带来了令人难忘的游戏体验。无论是广阔的水下景观还是充满生机的海洋生物,蔚蓝都让玩家感受到深海的神秘和美丽。蔚蓝在玩法上注重探索和解谜。玩家可以在海底环境中自由游动,发现隐藏的地点和秘密,与各种生物互动,并解决环境谜题以继续前进。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4170

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 341

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: SpringBoot - @Import注解使用详解
下一篇: SpringBoot - @Autowired注解使用详解
cloneme01
博客等级 码龄20年 2万+粉丝 248原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cloneme01

谢谢您的支持与鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值