我是靠谱客的博主 平常口红,最近开发中收集的这篇文章主要介绍spring知识点整理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.FactoryBean 与BeanFactory的区别:

FactoryBean是工厂bean.用户可以通过实现接口定制实例化Bean的逻辑。

BenaFactory是管理Bean的一个工厂,在Spring中,BeanFactory是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。

2.spring 容器的启动流程

 调用AbstractApplicationContex的refresh()方法

refresh中主要流程:

一:初始化

二:创建BeanFactory

三:实例化 bean工厂的后置处理器(BeanFactoryPostProcessor)

四:实例化bean的后置处理器(BeanPostProcessors)

五:加载事件监听器initMessageSource

六:创建事件监听器上下文对象

七:初始化其他特殊bean

八:注册监听器

九:创建所有事单例的bena

十:初始化完成并发布

比较核心的步骤标红,后面再看要不要整理

3.bean的创建过程

一:先从缓存中获取当前bena,如果能获取到说明bean是之前就创建过的,直接使用,否则在创建,重建完成后会将bean缓存起来

二:检查并确保初始化bean前所依赖的bean已经初始化同样调用AbstractBeanFactory.doGetBean

三:基于BeanPostProcessors检查是否对bean进行前置和后置增强如果需要则直接返回增强后的代理对象(AOP)

        1:判断当前bean是否在advisedBeans中(保存了所有需要增强bean)

        2:获取候选的增强器(切面里面的通知方法)

        3:获取到能在bean使用的增强器并对增强器排序

        4:保存到proxyFactory,并创建代理对象

四:否则doCreateBean

         1:使用bena的构造方法创建bean实例(基于反射)返回一个BeanWrapper对象

         2:判断是需要基于后置处理器修改bean定义

         3:执行bean的init方法

         4:将bean加入到IOC容器中DefaultSingletonBeanRegistry.disposableBeans(Map<String, Object> )

         5:返回bean的实例

4.spring 中事务原理:

 1)、@EnableTransactionManagement

  利用TransactionManagementConfigurationSelector给容器中会导入组件

  导入两个组件

  AutoProxyRegistrar

  ProxyTransactionManagementConfiguration

 2)、AutoProxyRegistrar:

  给容器中注册一个 InfrastructureAdvisorAutoProxyCreator 组件;基本的动态代理创建器

  InfrastructureAdvisorAutoProxyCreator:?

  利用后置处理器机制在对象创建以后,包装对象,返回一个代理对象(增强器),代理对象执行方法利用拦截器链进行调用;

 3)、ProxyTransactionManagementConfiguration 做了什么?

  1、给容器中注册事务增强器;

  1)、事务增强器要用事务注解的信息,AnnotationTransactionAttributeSource解析事务注解

  2)、事务拦截器:

  TransactionInterceptor;保存了事务属性信息,事务管理器;

  他是一个 MethodInterceptor;

  在目标方法执行的时候;

  执行拦截器链;

  事务拦截器:

  1)、先获取事务相关的属性

  2)、再获取PlatformTransactionManager,如果事先没有添加指定任何transactionmanger

  最终会从容器中按照类型获取一个PlatformTransactionManager;

  3)、执行目标方法

  如果异常,获取到事务管理器,利用事务管理回滚操作;

  如果正常,利用事务管理器,提交事务

   

 

最后

以上就是平常口红为你收集整理的spring知识点整理的全部内容,希望文章能够帮你解决spring知识点整理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部