c语言sscanf函数的用法是什么
293
2022-09-27
Bean的生命周期与用到的设计模式
1.图
2.基础过程
BeanFactory是访问spring容器的根接口,几乎所有的bean都遵循以下生命周期。
createBeanInstance 实例化 populateBean 属性填充 initializeBean 初始化,实例化又分为调用invokeAwareMethods方法,执行PostProcessorsBefore方法,然后调用invokeInitMethods方法,最后执行PostProcessorsAfter方法
3.本质过程
1.实例化Bean,反射的方式生成对象:Bean如何实例化:createBeanInstance生成对象 2.填充属性,populateBean(),循环依赖(三级缓存)
3.调用Aware接口方法,invokeAwareMethod(完成BeanName,BeanFactory,BeanClassLoader对象的属性设置) 4.调用BeanPostProcessor前置方法:ApplicationContextPostProcessor,设置ApplicationContext,Environment,ResourceLoader等对象 5.调用init-method方法:invokeInitmethod(),判断是否实现了initializingBean接口,如果有,调用afterPropertiesSet方法设置bean对象。 6.调用BeanPostProcessor后置方法,Spring的Aop就是在此处实现的,AbstractAutoProxyCreator,注册Destruction相关的回调接口:钩子函数
7.获取到完整的对象,调用getBean进行对象获取 8.销毁:是否实现了DispoableBean接口,调用destryMethod方法
4.Spring的设计模式
1.单例模式,bean默认都是单例的 2.原型模式:作用域指定为prototype 3.工厂模式:BeanFactory 4.模板方法:postProcessorBeanFactory,onRefresh,initPropertyValue 5.策略模式:XmlBeanDefinitionReader,PropertiesBeanDefinitionReader:读取各种资源 6.观察者模式:listner,event,multicast:ApplcationEvent,ApplcationListener,ApplcationEventPublisher 7.适配器模式:Adaptor:MethodBeforeAdviceAdapter,ThrowsAdviceAdapter,AfterReturningAdapter:aop 8.装饰者模式:BeanWrapper,BeanDecorator 9.责任链模式:使用aop的时候会生成一个拦截器链 10.代理模式:动态代理 11.委托者模式:BeanDefinitionParserDelegate 12.访问者模式:BeanDefinitionVisit 13.构造者模式:BeanDefinitionBulder
注释:Bean的生命周期过于复杂,这里只是一个为了记录一下
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~