SpringBoot原理-自动配置-原理分析-@Conditional

前言

  • 在自动配置类中声明Bean的时候,除了在方法上添加@Bean注解,还会加上@Conditionalxxx的注解(该注解都是条件装配的注解)SpringBoot原理-自动配置-原理分析-@Conditional_第1张图片

@Conditional

  • 作用:按照一定的条件进行判断,在满足给定条件后才会注册对应的bean对到Spring IOC 容器中去。
  • 位置:方法、类
  • @Conditional本身是一个父注解,派生出大量的子注解
    • @ConditionalOnBean:当容器中存在指定的Bean时,才会加载被注解的配置类或组件。

    • @ConditionalOnMissingBean:当容器中不存在指定的Bean时(类型或者名称),才会加载被注解的配置类或组件。

      • @Bean
        @ConditionalOnClass(name="io.jsonwebtoken.Jwts") // 当前环境存在指定类时,才会创建该bean
        public HeaderParser headerParser(){..}
    • @ConditionalOnClass:当类路径下存在指定的类时,才会加载被注解的配置类或组件。

      • @Bean
        @ConditionalOnMissingBean// 当不存在当前类型的bean时,才声明该bean
        public HeaderParser headerParser(){..}
    • @ConditionalOnMissingClass:当类路径下不存在指定的类时,才会加载被注解的配置类或组件。

    • @ConditionalOnProperty:当指定的配置属性满足条件时(属性名、属性值),才会加载被注解的配置类或组件。

      • @Bean
        @ConditionalOnProperty(name="name",havingValue="ithema") //配置文件中存在对应的属性和值,才会创建该bean到IOC容器中
        public HeaderParser headerParser(){..}
    • @ConditionalOnExpression:当指定的SpEL表达式满足条件时,才会加载被注解的配置类或组件。

你可能感兴趣的:(Java,Web学习跟踪笔记,spring,boot,java,spring)