0
点赞
收藏
分享

微信扫一扫

spring终结者

老牛走世界 2022-04-03 阅读 43
spring

一、 Spring是什么?
Spring是一个轻量级的java开发框架,它是为了解决企业应用开发的复杂性而创建的,spring的核心是控制反转(IOC)和面向切面编程(AOP),Spring的主要作用就是为代码解耦,降低代码间的耦合度,让对象和对象直接关系不是使用代码关联,而是通过配置来说明,即在spring中说明对象的关系,使用ico降低业务对象之间耦合度,使得主业务在相互调用过程中,不用在自己维护关系了,即不用再自己创建要使用的对象了,而是spring容器统一管理,自动注入;而AOP使得系统服务得到了最大的复用,且不用再由开发人员手工将系统级服务混到主业务逻辑中,而是由spring容器统一完成织入。

二、Bean的生命周期过程
1、 首先启动容器
2、 通过getBean调用某个bean
3、 通过beanDefinitionReader加载提前定义好的bea信息生成beanDefinition对象,然后存在一个Map结构中,Map的key是Bean的名字,value是beanDifinition对象,这个beanDifinition对象存的是描述了Bean的各种信息,比如Bean要实现的类,Bean的名字,作用域,构造方法注入时的参数,setter注入时的参数,自动注入模型,懒加载模型,初始化方法,销毁方法。
4、 然后通过bean工厂后置处理器读取bean的定义属性信息,并可以修改它,同时可以设置多个bean工厂后置处理器,然后通过order属性来确认各个bean工厂后置处理器的执行顺序;我们可以通过实现beanFactoryPostProcessor,并重写postProcessBeanFactory自定义bean工厂后置处理器去修改对应的bean属性信息
5、 BaanFactory通过反射创建对应的bean实例,
6、 实例化bean,通过调用bean的构造函数,生成beanWrapeer对象
7、 通过调用populateBean方法完成填充属性
8、 调用Aware方法,其中有实现了BeanNameAware接口就调用setBeanName;实现BeanClassLoaderAware接口,就实现setBeanClassLoader;实现了BeanFactroyAware
接口,调用setBeanFactory
9、 然后调用初始化bean之前的bean后置处理器的postProcessBeforeInitialization方法
10、 然后执行初始化方法,实现InitializingBean接口,调用afterPropertoesSet,然后如果定义了初始方法,就执行自定义的初始化方法,init-method
11、 然后调用bean后置处理器的poerProcessAfterInitialization
12、 然后bean就可以进行调用了
13、 然后要销毁bean的时候,实现DisposableBean接口,第哦啊用destroy, 执行自定义销毁方法,desroy-method
14、 结束

举报

相关推荐

0 条评论