首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Boot @ConfigurationProperties,如果无效则跳过@Configuration

@ConfigurationProperties 是 Spring Boot 中的一个注解,用于将配置文件(如 application.yml 或 application.properties)中的属性绑定到一个 Java 类上。这个注解通常与 @Component@Configuration 注解一起使用,以便 Spring 容器能够管理这些配置类。

基础概念

  • @ConfigurationProperties: 用于指定一个前缀,Spring Boot 会自动将配置文件中以该前缀开头的属性绑定到标记了此注解的类上。
  • @Component: 表示一个类是 Spring 组件,会被 Spring 容器管理。
  • @Configuration: 表示这是一个配置类,通常用于定义 bean。

优势

  1. 集中管理配置: 将相关的配置属性集中在一个类中,便于管理和维护。
  2. 类型安全: 属性绑定是类型安全的,编译时就能发现错误。
  3. 自动刷新: 结合 Spring Boot Actuator,可以实现配置的热刷新。

类型

  • 简单属性: 如 String, int 等基本类型。
  • 复杂属性: 如嵌套的对象或集合。

应用场景

  • 数据库连接配置: 如数据库 URL, 用户名, 密码等。
  • 外部服务配置: 如第三方 API 的密钥和端点。
  • 应用特定配置: 如日志级别, 缓存策略等。

可能遇到的问题及解决方法

问题:@ConfigurationProperties 无效

原因:

  • 没有添加 spring-boot-configuration-processor 依赖。
  • 没有在主类或配置类上添加 @EnableConfigurationProperties 注解。
  • 配置文件中的属性名与类中的字段名不匹配。
  • 类没有被 Spring 容器管理(未加 @Component@Configuration)。

解决方法:

  1. 添加依赖:
  2. 添加依赖:
  3. 在主类或配置类上添加 @EnableConfigurationProperties 注解,并指定配置类:
  4. 在主类或配置类上添加 @EnableConfigurationProperties 注解,并指定配置类:
  5. 确保配置文件中的属性名与类中的字段名匹配,例如:
  6. 确保配置文件中的属性名与类中的字段名匹配,例如:
  7. 对应的类字段应该是:
  8. 对应的类字段应该是:
  9. 如果想让配置类即使无效也能被跳过,可以使用 @ConditionalOnProperty 注解来控制配置类的加载:
  10. 如果想让配置类即使无效也能被跳过,可以使用 @ConditionalOnProperty 注解来控制配置类的加载:
  11. 这样,只有当 my.enabled=true 时,MyProperties 类才会被加载。

通过以上步骤,可以确保 @ConfigurationProperties 的有效性,并且在不需要时能够优雅地跳过配置类的加载。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • SpringBoot笔记(2)

    @SpringBootConfiguration @Configuration。代表当前是一个配置类 2. @ComponentScan 指定扫描哪些,Spring注解; 3....默认扫描我们当前系统里面所有META-INF/spring.factories位置的文件 spring-boot-autoconfigure-2.3.4.RELEASE.jar包里面也有META-INF.../spring.factories 文件里面写死了spring-boot一启动就要给容器中加载的所有配置类 2.2 按需开启自动配置项 虽然127个自动配置启动时都加载了(xxxAutoConfiguration...(修改配置文件) 三、最佳应用 引入场景依赖 https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html...Negative(不生效)\Positive(生效) 是否需要修改 参照文档修改配置项 https://docs.spring.io/spring-boot/docs/current/reference

    23430

    Spring Boot中注解@ConfigurationProperties的三种使用场景

    在Spring Boot中注解@ConfigurationProperties有三种使用场景,而通常情况下我们使用的最多的只是其中的一种场景。本篇文章带大家了解一下三种场景的使用情况。...符合条件则进行赋值。 场景二 使用@ConfigurationProperties和@Bean注解在配置类的Bean定义方法上。...) @ConfigurationProperties(prefix="spring.datasource.primary") public DataSource primaryDataSource(...@Configuration注解的配置类中通过@Bean注解在某个方法上将方法返回的对象定义为一个Bean,并使用配置文件中相应的属性初始化该Bean的属性。...精品SpringBoot 2.x视频教程 《Spring Boot 2.x 视频教程全家桶》,精品Spring Boot 2.x视频教程,打造一套最全的Spring Boot 2.x视频教程。

    2.2K10
    领券