Spring加载流程,Springboot自动装配原理

  Spring加载流程是,先扫描所有注解或者配置文件,然后通过反射加载到BeanDefinition类里,然后每一个Bean信息都是一个BeanDefinition,这里面包含了bean的id,class全类名,name,单例,然后每一个bean都会产生对应的BeanDefinition,然后这些beandefinition是通过beandefinitionmap进行管理的,他们都存在annotationapplicationcontext,然后获取bean实际上是beanfactory获取的,只不过applicationcontext可以将多个配置文件的信息同时加载,而且它还具有懒加载的功能,如果光是beanfactory还得手动注册bean的信息。之后通过构造方法或者字段注入等,将bean信息注入到指定字段上,让如果实现了aware接口,比如BeanNameaware可以获取bean的名字,BeanFactoryAware、ApplicationContextAware。接下来就是通过BeanPostProccser下的beforeXXX进行初始化前的一些方法然后进行initBeanFactory下的afterpropertiSet放法实现初始化功能,可以自定义一些方法,初始化完成之后进行BeanPostProccser的afterXX方法,此时AOP就在这里进行的,因为AOP增强的肯定是可以用的bean里的各种方法,不然AOP在之前出现,就没有意义了因为bean都没被创建,代理对象都无法生成。之后使用然后进行销毁disableFactory的destroy方法销毁。

自动装配原理就是先通过@SpringBootApplication中的enableAutoConfigutation注解引入的Import注解,在spring加载IOC容器的时候,会获取里面的的一个组件,他会读取META-INF/spring.factories的文件信息,然后过滤出所有AutoCofigutationClass类型(因为这个文件里包括了很多类),然后通过@ConditionOnXXX过滤出无效的自动配置类 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值