SpringBoot之Condition(自动配置)
一丶简介
开发者可以通过此功能实现选择性的创建Bean操作.
二丶自定义条件
定义条件类:自定义类实现Condition接口,重写 matches 方法,在 matches 方法中进行逻辑判断,返回boolean值 。 matches 方法两个参数:
-
context:上下文对象,可以获取属性值,获取类加载器,获取BeanFactory等。
-
metadata:元数据对象,用于获取注解属性。
判断条件: 在初始化Bean时,使用 @Conditional(条件类.class)注解(表示没有改字节码文件不创建该Bean) -
代码:(根据需求测试代码,第二段代码为自定义注解,根据参数属性来获取自定义注解内部的属性value值)
import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.env.Environment; import org.springframework.core.type.AnnotatedTypeMetadata; import java.util.Map; public class ClassCondition implements Condition { /** * * @param context 上下文对象。用于获取环境,IOC容器,ClassLoader对象 * @param metadata 注解元对象。 可以用于获取注解定义的属性值 * @return */ @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata