day3 springboot

springboot原理分析

springboot自动配置

condition:在spring4.0增加的条件判断功能,通过这个功能可以实现选择性的创建bean操作。即满足条件则创建,不满足则不创建。

用自定的class实现condition,重写matches(这个方法返回true则会创建bean,相反则不创建)。

 

 通过Class.forname来获取这个文件是否存在,存在则让matches返回true,相反返回false。

现在我们将类的判断定义为动态的。判断哪个字节码存在可以动态指定。

比如我在这自定注解ConditionOnClass,然后需要将注解@Conditional(ClassCondition.class)放入自定的注解里,并且为了要自定注解代替原注解,就需要将 @Conditional里的注解拿出来放到自定注解处。然后定义String数组存储多个文件名。

现在再看重写matches方法里的参数:

所以通过metadata来取指定的文件名value,

 

然后通过Map的get方法,将文件名存到List集合中,在遍历看是否有需要的文件。 

小结:

自定义注解:

        1.定义条件类:自定义实现Condition接口,重写matches方法,在这个方法里面进行逻辑判断,返回Boolean值。matches方法的两个参数:

                context:上下文对象,可以获取属性值,类加载器,BeanFactory等。

                metadata:元数据对象,用于获取注解属性。

        2.判断条件:在初始化Bean时,使用@Conditional(条件.class)注解。

springboot自带注解:

        ConditionalOnProperty:判断配置文件中是否有对应的属性和值才初始化Bean

        ConditionalOnClass:判断环境中是否有对应的字节码文件才初始化Bean

        ConditionalOnMissingBean:判断环境中没有对应Bean才初始化Bean

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值