首页 > 其他分享 >springboot里的@ConfigurationProperties注解介绍

springboot里的@ConfigurationProperties注解介绍

时间:2023-06-25 14:13:22浏览次数:34  
标签:配置 springboot 绑定 嵌套 ConfigurationProperties 注解 属性

在Spring Boot中,@ConfigurationProperties注解用于将外部配置文件中的属性值绑定到Java类的字段或属性上。通过使用该注解,可以方便地将一组配置属性统一绑定到一个POJO类中,然后在应用程序中使用。

以下是@ConfigurationProperties注解的主要特点和使用方式:

  1. 绑定配置属性:使用prefix属性可以指定要绑定的配置属性的前缀。例如,如果配置文件中有属性myapp.namemyapp.version,那么可以使用@ConfigurationProperties(prefix = "myapp")来绑定这两个属性。

  2. 自动类型转换:@ConfigurationProperties注解会根据字段或属性的类型,自动将配置属性值转换为相应的类型。Spring Boot支持常见的数据类型,如字符串、整数、浮点数、布尔值等。如果需要转换为自定义对象类型,可以使用@ConstructorBinding注解配合构造函数来实现。

  3. 支持嵌套属性:如果配置文件中的属性是嵌套结构的,例如myapp.address.city,可以在Java类中使用嵌套类或嵌套属性来表示。使用@NestedConfigurationProperty注解可以标记嵌套类或嵌套属性。

  4. 配置验证:可以使用@Validated注解对绑定的配置进行验证。通过在Java类的字段或属性上添加JSR-303/349规范的验证注解,可以实现配置属性的验证。

  5. 支持多种配置属性来源:@ConfigurationProperties注解支持从多种配置属性来源中进行绑定,包括properties文件、YAML文件、环境变量、命令行参数等。Spring Boot会自动根据优先级去选择最适合的来源。

  6. 松散绑定:默认情况下,@ConfigurationProperties注解会采用松散绑定(即忽略大小写和短横线/下划线的差异)的方式来匹配配置属性。可以通过设置ignoreInvalidFields属性为true来忽略无效的字段或属性。

使用@ConfigurationProperties注解时,需要确保将其标记的类在Spring上下文中进行扫描,通常可以使用@EnableConfigurationProperties注解或@ComponentScan注解来完成扫描。

总结起来,@ConfigurationProperties注解是一种方便的方式,用于将外部配置文件中的属性值与Java类的字段或属性进行绑定。它提供了自动类型转换、嵌套属性支持、配置验证等特性,可以简化应用程序的配置属性管理。

     

标签:配置,springboot,绑定,嵌套,ConfigurationProperties,注解,属性
From: https://www.cnblogs.com/shamo89/p/17502779.html

相关文章

  • springboot里的@PropertySource注解介绍
    在SpringBoot中,@PropertySource注解用于加载外部的属性源文件,将其作为配置文件来使用。该注解可以用于标记在Java类上,并指定要加载的属性源文件的位置。使用@PropertySource注解可以很方便地将外部的属性文件加载到Spring的环境中,并可以通过@Value注解或Environ......
  • Spring和Spring MVC中的常用注解
    spring中的常用注解@Compontent:表示这是spring管理的一个组件@Controller:控制层的组件@Service:业务层的组件@Repository:持久层组件@Autoeire:自动装配注解@Qualifier:Autowired默认是根据类型进行注入的,Qualifier限定描述符除了能根据名字进行注入,更能进行更细粒度的控制如......
  • 【转】SpringBoot 线上服务假死,CPU 内存正常
    文章来源:blog.csdn.net/zhangcongyi420/article/details/1311395991、背景开发小伙伴都知道线上服务挂掉,基本都是因为cpu或者内存不足,出现GC频繁OOM之类的情况。本篇文章区别以上的情况给小伙伴们带来不一样的服务挂掉。 2、问题排查老规矩在集群环境中同一个服务......
  • 11.springboot 原理 ( 起步依赖-自动配置)
    springboot原理springframeworkspringboot(配置起步依赖-自动配置)spring-boot-starter-web起步依赖(其他依赖自动传递)自动配置原理:自动将内置类存入IOC容器中,不用收到配置,只能扫描包内即子包的类,可以指定扫描的包内容:@ComponentScan("com.alex","com.ite");@Import导......
  • Apollo2.1.0+Springboot使用OpenApI
    依赖管理<!--bootstrap最高级启动配置读取--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>3.1.3</v......
  • Java注解介绍
    1.元注解Java定义了4个标准得meta-annotation,用于对注解作说明@Target:描述注解的使用范围,即注解可以用在什么地方(如类,方法、成员变量等)@Retention:表示注解的生命周期(SOURCE<CLASS<RUNTIME)(一般选择RUNTIME)@Document:说明注解是否被包含在javadoc中@Inherited:说......
  • 8. IOC & DI注解开发管理第三方bean
    ‍1.注解开发管理第三方bean‍在上述环境中完成对​Druid​数据源的管理,具体的实现步骤为:步骤1:导入对应的jar包<dependency>  <groupId>com.alibaba</groupId>  <artifactId>druid</artifactId>  <version>1.1.16</version></dependency>步骤2:在......
  • springboot使用Websocket写一个聊天室
     1<!--websocket依赖-->2<dependency>3<groupId>org.springframework.boot</groupId>4<artifactId>spring-boot-starter-websocket</artifactId>5</dependency>目录 ......
  • 基于springboot+vue的漫画之家管理系统,附源码+数据库+论文+PPT,适合课程设计、毕业设计
    1、项目介绍随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,“漫画之家”系统就是信息时代变革中的产物之一。任何系统都要遵循系统设计......
  • springboot 学习框架
    李兴华,springboot开发书籍配套视频https://www.bilibili.com/video/BV1wL411H7W8?p=172&vd_source=debae4e77e1cafd283cb9668d2acb3a7......