Java中的@Conditional条件注解详细解析

 更新时间:2023年11月28日 09:23:51   作者:明天天明~  
这篇文章主要介绍了Java中的@Conditional条件注解详细解析,@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean,需要的朋友可以参考下

@Conditional条件注解

@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。

@Conditional的定义:

//此注解可以标注在类和方法上
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME) 
@Documented
public @interface Conditional {
    Class<? extends Condition>[] value();
}

  例子:当存在name为tom的组件时,创建user01组件。可以标注在方法上也可以标注在类上

  @ConditionalOnBean(name = "tom") //当容器中没有tom组件 就不注册user01组件,也能将其标注在类上
    @Bean
    public User user01(){
 
        User user = new User();
        user.setName("zhangao");
        user.setAge(12);
        user.setPet(tomcat());//这个pet就是容器中的pet
        return user;
    }
  • @ConditionalOnJava                           | 系统的java版本是否符合要求               
  • @ConditionalOnBean                          | 容器中存在指定Bean;                  
  • @ConditionalOnMissingBean              | 容器中不存在指定Bean;                 
  • @ConditionalOnExpression                 | 满足SpEL表达式指定                   
  • @ConditionalOnClass                          | 系统中有指定的类                      
  • @ConditionalOnMissingClass              | 系统中没有指定的类                     
  • @ConditionalOnSingleCandidate         | 容器中只有一个指定的Bean,或者这个Bean是首选Bean
  • @ConditionalOnProperty                      | 系统中指定的属性是否有指定的值               
  • @ConditionalOnResource                    | 类路径下是否存在指定资源文件                
  • @ConditionalOnWebApplication           | 当前是web环境                      
  • @ConditionalOnNotWebApplication      | 当前不是web环境                     
  • @ConditionalOnJndi                              | JNDI存在指定项       

在这里插入图片描述

到此这篇关于Java中的@Conditional条件注解详细解析的文章就介绍到这了,更多相关@Conditional条件注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring security 5.x实现兼容多种密码的加密方式

    spring security 5.x实现兼容多种密码的加密方式

    spring security针对该功能有两种实现方式,一种是简单的使用加密来保证基于 cookie 的 token 的安全,另一种是通过数据库或其它持久化存储机制来保存生成的 token。这篇文章主要给大家介绍了关于spring security 5.x实现兼容多种密码的加密方式,需要的朋友可以参考下。
    2018-01-01
  • java实现题目以及选项乱序的方法实例

    java实现题目以及选项乱序的方法实例

    这篇文章主要给大家介绍了关于java实现题目以及选项乱序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Maven2环境安装与准备工作详解

    Maven2环境安装与准备工作详解

    这篇文章主要为大家详细介绍了Maven2环境安装与准备工作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Java中的ArrayList和线性表用法及说明

    Java中的ArrayList和线性表用法及说明

    文章介绍了线性表及其常见实现方式,包括顺序表和链表,重点讨论了顺序表的实现细节,如接口实现、增删查改操作、内存管理等,同时,文章还简要介绍了ArrayList的概念及其在Java集合框架中的应用,包括ArrayList的构造、常见方法和遍历方式
    2025-12-12
  • 关于@RequestBody,@PathVariable,无注解使用及说明

    关于@RequestBody,@PathVariable,无注解使用及说明

    本文详细介绍了@RequestBody、@PathVariable和无注解三种参数注解的使用场景、核心特征及对比,总结:根据数据类型和场景选择合适注解,可提升接口规范性和性能
    2025-10-10
  • 详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)

    详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)

    这篇文章主要介绍了详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • JAVA实战练习之图书管理系统实现流程

    JAVA实战练习之图书管理系统实现流程

    随着网络技术的高速发展,计算机应用的普及,利用计算机对图书馆的日常工作进行管理势在必行,本篇文章手把手带你用Java实现一个图书管理系统,大家可以在过程中查缺补漏,提升水平
    2021-10-10
  • Java启动Tomcat的实现步骤

    Java启动Tomcat的实现步骤

    本文主要介绍了Java启动Tomcat的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • java锁升级过程过程详解

    java锁升级过程过程详解

    这篇文章主要介绍了Java锁升级的实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • SpringBoot项目启动时预加载操作方法

    SpringBoot项目启动时预加载操作方法

    Spring Boot是一种流行的Java开发框架,它提供了许多方便的功能来简化应用程序的开发和部署,这篇文章主要介绍了SpringBoot项目启动时预加载,需要的朋友可以参考下
    2023-09-09

最新评论