14. Spring Boot的自动配置

Spring Boot的自动配置

@EnableAutoConfiguration 可以借助 SpringFactoriesLoader 这个特性将标注了 @Configuration 的 JavaConfig 类“一股脑儿”的汇总并加载到最终的 ApplicationContext,不过,这其实只是“简化版”的说明。

实际上,基于 @EnableAutoConfiguration 的自动配置功能拥有更加强大的调控能力,通过配合比如基于条件的配置能力或者调整加载顺序,我们可以对自动配置进行更加细粒度的调整和控制。

基于条件的自动配置

基于条件的自动配置来源于 Spring 框架中“基于条件的配置”这一特性。在 Spring 框架中,我们可以使用 @Conditional 这个 Annotation 配合 @Configuration 或者 @Bean 等 Annotation 来干预一个配置或者 bean 定义是否能够生效,其最终实现的效果或者语义类似于如下伪代码:

if(符合 @Conditional 规定的条件){
    加载当前配置(enable current Configuration)或者注册当前bean定义;
}

要实现基于条件的配置,我们只要通过 @Conditional 指定自己的 Condition 实现类就可以了(可以应用于类型 Type 的标注或者方法 Method 的标注):

@Conditional({MyCondition1.class, MyCondition2.class, ...})

最主要的是,@Conditional 可以作为一个 Meta Annotation

相关推荐

  1. springboot自动配置原理

    2024-01-27 23:50:01       34 阅读
  2. 14. Spring Boot自动配置

    2024-01-27 23:50:01       39 阅读
  3. springboot自动配置条件注解使用

    2024-01-27 23:50:01       32 阅读
  4. SpringBoot 自动配置原理

    2024-01-27 23:50:01       36 阅读
  5. SpringBoot -- 自动配置机制

    2024-01-27 23:50:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 23:50:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 23:50:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 23:50:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 23:50:01       20 阅读

热门阅读

  1. linux动态库,静态库

    2024-01-27 23:50:01       33 阅读
  2. 用Spring Validation优雅实现参数校验

    2024-01-27 23:50:01       41 阅读
  3. springboot核心有几层架构

    2024-01-27 23:50:01       38 阅读
  4. 第十四届蓝桥杯C组题目 三国游戏

    2024-01-27 23:50:01       40 阅读
  5. python入门Flask框架学习(二)

    2024-01-27 23:50:01       37 阅读
  6. RabbitMq学习

    2024-01-27 23:50:01       30 阅读