zoukankan      html  css  js  c++  java
  • springboot自动装配(3)---条件注解@Conditional

    之前有说到springboot自动装配的时候,都是去寻找一个XXXAutoConfiguration的配置类,然而我们的springboot的spring.factories文件中有各种组件的自动装配类,到底哪些应该生效,哪些又不生效呢?这个时候就要用到spring提供的条件注解了。

    比如:

    @ConditionalOnJava                               系统的java版本是否符合要求

    @ConditionalOnBean                              容器中存在指定Bean

    @ConditionalOnMissingBean                  容器中不存在指定Bean
    @ConditionalOnExpression                     满足SpEL表达式指定
    @ConditionalOnClass                             系统中有指定的类
    @ConditionalOnMissingClass                 系统中没有指定的类
    @ConditionalOnProperty                        系统中指定的属性是否有指定的值
    @ConditionalOnResource                      类路径下是否存在指定资源文件
    @ConditionalOnWebApplication            当前是web环境
    @ConditionalOnNotWebApplication       当前不是web环境
    等等,
    当条件成立时,才会装配此配置
    比如 RabbitAutoConfiguration
     

     当有RabbitTemplate, Channel的时候才会加载这个配置,当没有ConnectionFactory连接工厂的时候才生成工厂配置。

    我们如何查看哪些自动生效了,哪些没有生效呢,这个时候可以配置一个参数 debug=true ,这个时候启动springboot程序会在启动日志打印匹配上的和没有匹配上的配置

    Positive matches: 匹配上的

    Negative matches:没有匹配上的

     
  • 相关阅读:
    C语言|作业07
    Cookie应用
    刷新页面,怎么做到不提示“不重新发送消息,则无法刷新页面”
    笔记
    笔记
    元素内部设定position
    企业微信正式发布 Tita 绩效宝,助力企业完成数字化绩效管理转型
    OKR实践:如何获得高层的理解与关注
    OKR:衡量结果和解决实际问题
    2022 年绩效评估,HR看这一篇就够了!
  • 原文地址:https://www.cnblogs.com/nijunyang/p/12051770.html
Copyright © 2011-2022 走看看