SpringIOC流程以及Mybatis架构

1、Spring IOC 流程图

![在这里插入图片描述](https://img-blog.csdnimg.cn/626a8582f4b14ac3983567a85bce1d4d.png在这里插入图片描述

IOC 依赖注入整体流程

1、环境初始化
2、Bean工厂初始化
3、读取项目配置
4、定义解析Bean-->BeanDefintion
5、将BeanDefinition存储工厂类的Map
6、通过BeanFactoryPostProcessord进行一些功能的增强
7、反射实例化对象
8、进入到Bean的实例化流程,设置对象属性
9、设置Aware接口的相关依赖
10、前置处理
11、完成一些配置的加载
12、检查是否有自定义的init-method
13、后置处理器
14、对象创建完成,添加到BeanFactory的单例池中

Spring中使用的设计模式

1、工厂模式
2、代理模式
3、单例模式(Bean单例)
4、观察者模式(发布订阅-事件监听)
5、模板方法
6、迭代器

FactoryBean与BeanFactory区别

1、他们两个都是工厂,但是FactoryBean本质还是一个Bean,也归BeanFactory管理
2、BeanFactory是Spring的顶层接口,FactoryBean类似于用于自定义的工厂接口

BeanFactor与ApplicationContext区别

1、BeanFactory是Spring容器的顶层接口,而ApplicationContext应用上下文,它是BeanFactory的子类,它是Spring中更高级的容器,提供了更多的功能
	国际化、访问资源、载入多个上下文、消息发送响应机制
2、两者装载Bean的时机不同
BeanFactory:在启动的时候不会去实例化Bean,只有从容器中拿Bean的时候才会去实例化(懒加载)
优点:应用启动的时候占用的资源较少,对资源的使用要求比较高的应用比较有优势
ApplicationContext:在启动的时候就把所有Bean全部实例化,lazy-init=true可以使Bean延时实例化
优点:所有Bean在启动的时候就加载系统运行的速度快还可以及时发现系统中配置的问题	

Spring事件模型中的几个角色

ApplicationEvent:事件
ApplicationListener:监听器
ApplicationEventPublisher: 事件源
ApplicationEventMulticaster:事件管理者

spring事件机制工作流程
在这里插入图片描述
总体来说ApplicationContext必须要完成以下几件事:

1、标识一个应用环境
2、利用jBeanFactory创建Bean对象
3、保存对象关系表
4、能够捕获各种事件

2、Mybatis框架图

在这里插入图片描述
mybatis中使用的设计模式

1、建造者模式(构件SqlSessionFactory)
2、工厂模式  (SqlSessionFactory)
3、单例模式(ErrorContext、LogFactory)
4、代理模式(SqlSession.getMapper(xx.class)) JDK动态代理
5、组合模式
6、模板方法模式 (update方法 doUpdate交由子类实现)
7、适配器模式 (Log接口)
8、装饰器模式 (PrepetualCache)
9、迭代器模式(PropertyTokenizer)

猜你喜欢

转载自blog.csdn.net/qq_21875331/article/details/128457513
今日推荐