Spring Boot我爱编程

@ConditionalOnxxx 相关注解总结

2018-04-08  本文已影响234人  wyatt_plus

@Condition用法

package io.fredia.femicro.graph.config;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

public class Neo4jCondition implements Condition {

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        // TODO Auto-generated method stub
        return true;
    }

}

@Conditional(TestCondition.class)
这句代码可以标注在类上面,表示该类下面的所有@Bean都会启用配置,也可以标注在方法上面,只是对该方法启用配置。

Spring框架还提供了很多@Condition给我们用,在我们以后常用的Springboot中org.springframework.boot.autoconfigure.condition包下有大量的子类,对于我们深入理解autoconfigure有很大帮助。

springboot相关扩展注解类
spring自带的注解类
列举几个常用的注解:
@ConditionalOnBean**(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)
上一篇 下一篇

猜你喜欢

热点阅读