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条件注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • idea中使用Inputstream流导致中文乱码解决方法

    idea中使用Inputstream流导致中文乱码解决方法

    很多朋友遇到一个措手不及的问题当idea中使用Inputstream流导致中文乱码及Java FileInputStream读中文乱码问题,针对这两个问题很多朋友不知道该如何解决,下面小编把解决方案分享给大家供大家参考
    2021-05-05
  • java字符串与格式化输出的深入分析

    java字符串与格式化输出的深入分析

    本篇文章是对java字符串与格式化输出进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 解决IDEA开发工具右侧没有Maven工具栏的问题

    解决IDEA开发工具右侧没有Maven工具栏的问题

    这篇文章主要给大家解决了IDEA开发工具右侧没有Maven工具栏的问题,文中有详细的解决步骤,如果有遇到一样问题的小伙伴,可以参考阅读本文
    2023-09-09
  • Spring Boot统一处理全局异常的实战教程

    Spring Boot统一处理全局异常的实战教程

    最近在做项目时需要对异常进行全局统一处理,所以下面这篇文章主要给大家介绍了关于Spring Boot统一处理全局异常的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • Springboot事务失效的几种情况解读

    Springboot事务失效的几种情况解读

    这篇文章主要介绍了Springboot事务失效的几种情况解读,因为Spring AOP默认使用动态代理,会给被代理的类生成一个代理类,事务相关的操作都通过代理来完成,使用内部方法调用时,使用的是实例调用,没有通过代理类调用方法,因此事务不会检测到失败,需要的朋友可以参考下
    2023-10-10
  • Java后端向前端返回文件流实现下载功能的方法

    Java后端向前端返回文件流实现下载功能的方法

    这篇文章主要给大家介绍了关于Java后端向前端返回文件流实现下载功能的相关资料,Java后端可以通过调用接口返回文件流来实现文件传输功能,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Java 提取照片的EXIF信息批量重命名

    Java 提取照片的EXIF信息批量重命名

    这篇文章主要介绍了Java 提取照片的EXIF信息批量重命名的方法,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-04-04
  • Java使用@Validated注解进行参数验证的方法

    Java使用@Validated注解进行参数验证的方法

    这篇文章主要介绍了Java使用@Validated注解进行参数验证的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 基于UDP协议实现聊天系统

    基于UDP协议实现聊天系统

    这篇文章主要为大家详细介绍了基于UDP协议实现聊天系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 详解context root修改无效web修改项目路径(eclipse)

    详解context root修改无效web修改项目路径(eclipse)

    这篇文章主要介绍了详解context root修改无效web修改项目路径(eclipse)的相关资料,需要的朋友可以参考下
    2017-04-04

最新评论