springboot中@EnableConfigurationProperties注解

news2024/10/10 3:21:02

作用概述

@EnableConfigurationProperties注解用于显式地启用对@ConfigurationProperties注解类的支持。它告诉Spring Boot框架,在应用程序中存在使用@ConfigurationProperties注解的类,需要自动加载并绑定配置文件(如application.properties或application.yml)中的属性到这些类的字段上。(@EnableConfigurationProperties 注解本身并不直接负责创建 MaaSRemoteProperties 类的实例。它的作用是启用对使用 @ConfigurationProperties 注解的类的支持,允许 Spring Boot 自动将这些类的实例与配置文件中的属性进行绑定。将bean注入到spring容器中去

具体作用

  • 启用自动装配:
    @EnableConfigurationProperties注解能够启用对配置属性类的自动装配功能。这意味着,当Spring Boot应用程序启动时,它会自动查找并注册这些配置属性类为Spring容器中的Bean。
  • 关联配置类:
    在主类上使用@EnableConfigurationProperties注解,并将其value属性设置为一个或多个@ConfigurationProperties注解的类,可以建立这些配置属性类与Spring容器之间的关联。
  • 属性绑定:
    一旦配置属性类被注册为Bean,并且与Spring容器建立了关联,Spring Boot就会将这些类的字段与配置文件中的属性进行绑定。这允许应用程序在运行时动态地读取和使用这些配置属性。
  • 简化配置:
    使用@EnableConfigurationProperties注解可以简化配置过程,因为它避免了在每个配置属性类上添加@Component等Spring组件注解的需要。同时,它也减少了类路径扫描的开销,使得代码更加清晰和易于维护。

使用示例

假设你有一个配置属性类MyProperties,它使用了@ConfigurationProperties注解来绑定应用程序的配置属性,并且这个类没有使用@Component这类注解

@ConfigurationProperties(prefix = "maas.server")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MyProperties {

    private  String apiPrefix ;
    }

为了启用对这个配置属性类的支持,你可以在Spring Boot应用的启动类或任何一个配置类上使用@EnableConfigurationProperties注解:

@Slf4j
@Service
@EnableConfigurationProperties(value = MaaSRemoteProperties.class)
@ConditionalOnProperty(name = "maas.server.use", havingValue = MaaSRemoteConstants.Service.ACTIVE_PROD, matchIfMissing = true)
public class MaaSRemoteServiceImpl implements MaaSRemoteService {

    @Autowired
    private MaaSRemoteProperties maaSRemoteProperties;

}

现在,当应用程序启动时,配置文件(如application.properties或application.yml)中的属性值将会被注入到MyProperties类的对应字段中。你可以通过在其他组件或服务中注入MyProperties类的实例来访问这些属性。

maas:
  server:
    apiPrefix: http://11.11.11.1:30808
    use: prod

注意事项

  • 从Spring Boot 2.2版本开始,如果你的配置属性类是以组件(如使用@Component注解)的形式注册的,那么你不需要显式地使用@EnableConfigurationProperties注解。Spring Boot会自动配置这些属性类。
  • @EnableConfigurationProperties注解本身并不进行具体的属性注入;它只是启用了对配置属性类的支持,并将其与Spring容器关联起来。要实现属性注入,你还需要在相关的配置属性类上使用@ConfigurationProperties注解,并在其中定义相应的属性以及相应的getter和setter方法。

综上所述,@EnableConfigurationProperties注解在Spring Boot框架中起到了启用和管理配置属性类的重要作用,使得从外部配置文件中读取配置变得简单和直接。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟机没有网络怎么解决

CentOS7为例 进入虚拟网络编辑器 1.更改设置 2.选中NAT模式点击3点击移除网络 4添加网络,随便选一个 5.点开NAT设置,记住网关 6.DHCP设置,注意虚拟机设置ip必须在起始ip和结束ip范围内 进入虚拟机网络适配器,自定义选中第4步操作…

Tailwind Css的使用

1.Tailwind Css是什么 官网解释:Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何 模板中的 CSS 类(class)名,然后生成相应的样式代码并写入 到一个静态 CSS 文件中。 我的理解是利用Tailwind CSS 提供的…

Element-快速入门

什么是 Element 在现代前端开发中,组件化的思想日益盛行,Element组件库作为一款流行的UI组件库,特别适用于基于Vue.js的项目,它为开发者提供了丰富的组件和良好的开发体验。 想要使用Element的组件库,我们需要完成下面…

基于opencv的人脸闭眼识别疲劳监测

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝,拥有2篇国家级人工智能发明专利。 社区特色…

基于函数计算FC 部署 ComfyUI实现AI生图 的优势

基于函数计算FC 部署 ComfyUI实现AI生图 的优势 部署ComfyUI实现AI生图使用函数计算FC 一键部署ComfyUI 绘画平台的优势有哪些? 在文章开始之前,先来看一下基于函数计算FC 部署 ComfyUI实现AI生图 的大概步骤,整个基础部署操作比较简单。即便…

《Programming from the Ground Up》阅读笔记:p181-p216

《Programming from the Ground Up》学习第10天,p181-p216总结,总计34页。 一、技术总结 第10章主要讲计算机是如何计算的,如十进制、二进制、八进制、十六进制以及浮点数和负数的表示。属于比较基础的内容,如果有一定基础&…

ai免费写论文是原创吗?分享5款ai写作免费一键生成助手

在当今的学术研究和写作领域,AI技术的应用越来越广泛,尤其是在论文写作方面。许多AI写作工具声称能够一键生成高质量的论文,并且保证原创性。然而,这些工具是否真的能生成完全原创的论文,仍然是一个值得探讨的问题。 …

【函数】4.函数的单调性

本节课没有笔记示例,自己做好笔记! 复合函数的单调性 最值 没讲 提醒我

【引领未来办公新风尚 —— 搭贝臻选,您的全能企业管理神器】

在这个瞬息万变的商业时代,每一分效率的提升都可能是超越竞争的关键。搭贝低代码平台匠心打造的“搭贝臻选”应用,集CRM营销管理、销售管理、采购管理、库存管理、财务管理、工单管理、人事管理及办公OA于一体,全方位赋能您的企业&#xff0c…

单片机闪存,闪存缓冲取,闪存延迟

一、启用闪存预取缓冲区(FLASH_PrefetchBufferCmd (FLASH_PrefetchBuffer_Enable);) 闪存预取缓冲区的作用: 在微控制器中,闪存是用于存储程序代码和常量数据的非易失性存储器。当微控制器执行程序时,需要从闪存中读取…

响应速度相关知识

在讨论 Android 性能问题的时候,卡顿、响应速度、ANR 这三个性能相关的知识点通常会放到一起来讲,因为引起卡顿、响应慢、ANR 的原因类似,只不过根据重要程度,被人为分成了卡顿、响应慢、ANR 三种,所以我们可以定义广义…

加快rollback事务回滚速度

背景: 运行一个长事务会话SQL,取消运行或者kill会话,回滚时间较长的情况。 影响到其它业务运行,需要尽快回滚的场景。 1.可以通过kill会话对应的操作系统进程,能够使用到并行恢复,会加快回滚速度。&…

汽车宣传动画渲染怎么做?云渲染加速汽车动画渲染

在汽车行业,宣传动画已成为展示新车型和技术创新的重要工具。高质量的渲染不仅能够吸引观众的眼球,还能有效传达汽车的性能和美学。随着技术的发展,云渲染技术为汽车宣传动画的渲染提供了新的可能性,大大提高了渲染效率和质量。 第…

一些零散的和编译相关的语法/flash-attn涉及语法扫盲

#pragma once:一个编译指令,用于防止头文件被多次包含。当编译器遇到#pragma once时,它会确保该头文件在一个编译单元(一个.cpp文件及其包含的所有文件)中只会被包含一次。即使该文件被间接包含多次,编译器…

JavaWeb的小结03

第2章-第3节 一、知识点 Cookie、Session、Filter过滤器、Listener。 二、目标 理解Cookie和Session的区别。 掌握Cookie和Session的基本用法。 理解Filter过滤器的作用。 三、内容分析 重点 理解Cookie和Session的区别。 掌握Cookie和Session的基本用法。 理解Filter过…

minio简单使用

文章目录 简介官方地址Linux下载安装安装服务启动关闭帮助命令 java开发minio依赖包新建项目pom配置文件配置类Service测试类运行测试 Api使用前言针对桶的操作查看某个桶是否存在创建一个桶返回桶列表删除一个桶 针对文件的操作上传文件到桶中(本地文件上传)上传文件到桶中(基…

(Linux驱动学习 - 9).设备树下platform的LED驱动

一.platform相关结构体与函数 1.匹配列表 - struct of_device_id struct of_device_id {char name[32];char type[32];/* compatible 很重要,需要与设备树节点的 compatible 属性一致,才能匹配 */char compatible[128]; const void *data; }; …

dfs 判重Sequence one——hdu 2610

目录 前言 搜索算法判重 map判重 set判重 Sequence one 问题描述 输入 输出 数据范围 样例 问题分析 重构dfs参数 递减,不重复 去重的优化 最终代码 前言 搜索算法判重 搜索算法判重有很多种方法,常见的有两种,map判重和set判重…

模运算和快速幂

文章目录 模运算快速幂 模运算 模运算是大数运算中的常用操作。如果一个数太大,无法直接输出,或者不需要直接输出,则可以对它取模,缩小数值再输出。取模可以防止溢出,这是常见的操作。 取模运算一般要求a和m的符号一…

VCI_VBDSP使用教程-服务站

VCI_VBDSP使用教程-服务站 VBDSP软件压缩包请点击下载:(备注:将VBDSP软件压缩包做一个下载连接,放到此处) 教程视频:https://www.bilibili.com/video/BV19eHpeeEiz/?spm_id_from333.999.0.0&vd_source224b4434f72960113bc97…