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:没有匹配上的

     
  • 相关阅读:
    04-JQuery
    03-JavaScript
    02-CSS&JS
    01-HTML
    [LeetCode]Insert Interval
    [shell编程]正则表达式
    [LeetCode]Jump Game II
    [LeetCode]Jump Game
    [LeetCode]Wildcard Matching
    [shell编程]初识sed和gawk
  • 原文地址:https://www.cnblogs.com/nijunyang/p/12051770.html
Copyright © 2011-2022 走看看