SpringBoot自动配置

Condition

自定义条件:

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

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

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

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

SpringBoot提供的常用条件注解:

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

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

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

@Enable*注解

SpringBoot中提供了很多Enable开头的注解,这些注解都是用于动态启用某些功能的.而其底层原理是使用@Import注解导入一些配置类,实现Bean的动态加载.

@Import注解

@Enable*底层依赖于@Import注解导入一些类,是哟个@Import导入的类会被Spring加载到容器中.而@Import提供4种用法:

        1.导入Bean

        2.导入配置类

        3.导入ImportSelector实现类.一般用于加载配置文件中的类

        4.导入ImportBeanDefinitionRegistrar实现类

@EnableAutoConfiguration注解

@EnableAutoConfiguration注解内部使用@Import(AutoConfigurationI吗port Selector.class)来加载配置类.

配置文件位置: META-INF/spring.factories,该配置文件中定义了大量的配置类,当SpringBoot应用启动时,会自动加载这些配置类,初始化Bean

并不是所有的Bean都会被初始化,再配置类中使用Condition来加载满足条件的Bean.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值