TreeMind树图在线AI思维导图

spring思维导图

  收藏
  分享
免费下载
免费使用文件
U125600584 浏览量:1312023-02-10 08:16:22
已被使用20次
查看详情spring思维导图

spring总体介绍

树图思维导图提供 spring 在线思维导图免费制作,点击“编辑”按钮,可对 spring  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:d690a98927326b1178395d45682360cc

思维导图大纲

spring思维导图模板大纲

spring ioc

概念:其实就是控制反转,把spring的一些Bean,交给spring容器去管理

容器种类

BeanFactory

spring最基本的容器

BeanFactory和FactoryBean的区别:

BeanFactory是spring用来管理和装配普通bean的ioc容器。

FactoryBean是个bean,在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式,是一个可以生产对象和装饰对象的工厂bean

ApplicationContext

spring的高级容器,继承了BeanFactory

IOC的创建过程

ioc是用来管理bean的,所以他的创建过程也包含了bean的创建过程

在对空间中初始化一块区域,作为容器创建的准备工作

通过BeanDefinitionReader,解析各种格式的Bean定义信息,存放到BeanDefinitionMap

执行BeanFactory的增强接口,BeanFactoryPostProcessor

开始实通过反射实例化Bean

填充Bean的属性,这里就涉及到三级缓存的概念

执行实现的Aware相关接口

执行BeanPostProcessor的前置增强方法Before

执行实现的初始化方法

执行BeanPostProcessor的后置增强方法After,AOP就是在这一步进行的扩展

此时的Bean就创建完成了,存放到spring的单例池中

当ioc容器销毁时,执行实现的相关销毁接口

spring aop

概念:面向切面编程,将非业务,可重用的功能性代码,封装成一个切面,方便其他业务模块调用

原理:代理模式:创建一个代理对象,去帮目标对象实现和扩展功能

静态代理:编译时就进行代理,但是每个需要代理的对象都要重复编写代理类

动态代理:运行时开始利用反射代理目标对象

JDK动态代理

只能代理接口

CGLIB动态代理

可以代理接口,也可以代理目标类

工作流程:初始化ioc容器 —> 完成所有Bean的实例和初始化 —> 在bean后置处理器中完成AOP功能的扩展 —> 检测需要代理的advice —> 创建代理对象

应用场景:

可以拦截指定的方法,并且对方法增强,比如:事务、日志、权限、性能监测等增强,而且无需侵入到业务代码中,使业务与非业务处理逻辑分离

spring三级缓存

三级缓存是为了解决循环依赖

解决循环依赖过程:实例化A时,发现依赖B —> 将A存放至三级缓存,去实例化B —> 发现依赖A,从三级缓存中去除A,放入二级缓存,并完成B的实例化,将B放入一级缓存 —> 继续完成A的实例化,并将A从二级缓存中删除,放入一级缓存

为什么非要三级缓存,不能是二级缓存:多一级缓存是为了存放代理对象,避免代理对象将目标对象覆盖,导致多线程场景异常

spring源码分析

spring事务

声明式事务

@Transactional注解来实现

spring会对声明了该注解的方法的类,创建一个动态代理对象,对其方法开始前创建一个事务进行拦截,没有异常,才提交事务

编程式事务

事务失效场景:

方法修饰符非public,或者被static修饰,,或者被final修饰

抛出的异常不是事务支持的异常

涉及到数据库,但数据库本身不支持事务

事务方法所在类没有被spring容器管理

本身非事务方法调用事务方法:由于声明式事务原理是AOP,需要创建代理对象,而自身没办法代理自身

数据源没有配置事务管理器

spring设计模式

工厂模式:ioc容器的BeaFactory,典型的工厂模式,好处是提高灵活性,更方便实例化对象,也增加了扩展性

单例模式:spring ioc管理的普通bean,默认为单例模式,好处是可以控制Bean实例的数量,节约资源

代理模式:spring的AOP是典型的代理模式,好处是可以隐藏原始目标的复杂性,也可以代理增加扩展性

策略模式:在实例化对象的时候使用到策略模式,根据是否实现不同接口执行不同策略

模板方法:spring中的jdbcTemplate

适配器模式:spring中AOP的通知功能,用到适配器模式

观察者模式:spring中的各种监听器,就是用到的观察者模式,当状态发生变化时,触发

spring的优缺点

优点

声明式事务的支持、方便解耦,简化开发、AOP编程的支持,方便的实现对程序进行权限拦截、运行监控等功能、高可扩展性

缺点

配置繁琐、Spring依赖反射,反射影响性能、增加学习成本

相关思维导图模板

SpringBootWeb请求响应思维导图

树图思维导图提供 SpringBootWeb请求响应 在线思维导图免费制作,点击“编辑”按钮,可对 SpringBootWeb请求响应  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:1c6ee1ff958a0c7c2fabdf9e9f8d755e

贫瘠的春天 (Barren Spring)思维导图

树图思维导图提供 贫瘠的春天 (Barren Spring) 在线思维导图免费制作,点击“编辑”按钮,可对 贫瘠的春天 (Barren Spring)  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4029a74d605c7f8721963c42b43de9a9