重学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.hqwc.cn/news/506581.html

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

相关文章

全栈崛起:2024前端新纪元,全能开发者领航时代

随着技术的飞速发展和数字化转型的浪潮,软件工程师的角色正在经历一场深刻的变革。 2024年,全栈开发的概念已不再是新鲜词汇,它正迅速成为行业标配,预示着前端开发领域一个全新纪元的到来。 全栈开发者,顾名思义&…

Git 如何上传本地的所有分支

Git 如何上传本地的所有分支 比如一个本地 git 仓库里定义了两个远程分支,一个名为 origin, 一个名为 web 现在本地有一些分支是 web 远程仓库没有的分支,如何将本地所有分支都推送到 web 这个远程仓库上呢 git push web --all

无人机巡检技术方案,无人机智能化巡检在火电厂的应用场景分析

无人机智能化巡检是一种将先进的无人机技术与人工智能、大数据分析等现代信息技术相结合的新型巡检方式,主要用于替代或辅助传统的人工巡检,在多个领域实现高效、精准和安全的巡查工作。 无人机技术在火电厂巡检中的应用: 无人机电力巡航&a…

Vue中如何实现条件渲染?

在Vue中实现条件渲染非常简单且灵活&#xff0c;主要通过Vue的指令来实现。在Vue中&#xff0c;我们可以使用v-if和v-else指令来根据条件来渲染不同的内容。下面就让我们通过一个简单的示例来演示如何在Vue中实现条件渲染&#xff1a; <!DOCTYPE html> <html lang&qu…

数字化转型导师坚鹏:证券公司数字化转型战略、方法与案例

证券公司数字化转型战略、方法与案例 课程背景&#xff1a; 数字化转型背景下&#xff0c;很多机构存在以下问题&#xff1a; 不清楚证券公司数字化转型的发展战略&#xff1f; 不知道证券公司数字化转型的核心方法&#xff1f; 不知道证券公司数字化转型的成功案例&am…

03-JNI 类型和数据结构

上一篇&#xff1a; 02-设计概述 本章讨论 JNI 如何将 Java 类型映射为本地 C 类型。 3.1 原始类型 下表描述了 Java 原始类型及其与机器相关的本地等价类型。 为方便起见&#xff0c;定义如下&#xff1a; #define JNI_FALSE 0 #define JNI_TRUE 1 jsize 整数类型用于描述…

深入分析Android运行时环境ART:原理、特点与优化策略

摘要 随着移动互联网的快速发展&#xff0c;智能手机的性能和功能日益强大&#xff0c;其中Android操作系统因其开放性和灵活性而占据主导地位。Android运行时环境&#xff08;ART&#xff09;作为执行应用程序代码的关键组件&#xff0c;在系统性能和用户体验方面起着至关重要…

数据结构 - Trie树(字符串统计、最大异或对)

文章目录 前言Part 1&#xff1a;Trie字符串统计1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 Part 2&#xff1a;最大异或对1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 前言 本篇博客将介绍Trie树的常见应用&#xff0c;包括&#xff1a;Trie…

Java毕业设计-基于springboot开发的摄影跟拍预定管理系统-毕业论文+答辩PPT(有源代码)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1.开发说明2.需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、管理员功能模块3、摄影师功能模块4、用户功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开…

运用qsort函数进行快排并使用C语言模拟qsort

qsort 函数的使用 首先qsort函数是使用快速排序算法来进行排序的&#xff0c;下面我们打开官网来查看qsort是如何使用的。 这里有四个参数&#xff0c;首先base 是至待排序的数组的首元素的地址&#xff0c;num 是值这个数组的元素个数&#xff0c;size 是指每个元素的大小&am…

JVM(6)

JMM JVM定义了一种Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果.在此之前,C/C直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台下的内存模型差异,有可能导致程序在一套平台上并发完全正常,而在另…

Spring 事务传播机制

事务传播机制&#xff1a;多个事务⽅法存在调⽤关系时, 事务是如何在这些⽅法间进⾏传播的。 ⽐如&#xff1a;有两个⽅法A&#xff0c;B都被 Transactional 修饰,&#xff0c;A⽅法调⽤B⽅法 A⽅法运⾏时, 会开启⼀个事务。当A调⽤B时&#xff0c; B⽅法本⾝也有事务&#xf…