没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
more
spring
资料
微软用户
[选取日期]
1
目录
Spring 原理 ................................................................................................................................................................................................................ 2
Spring ioc 原理 ......................................................................................................................................................................................................... 3
Bean 生命周期 .......................................................................................................................................................................................................... 3
Java 反射 ................................................................................................................................................................................................................... 4
beanfactory 和 applicationcontext ............................................................................................................................................................................ 5
类装载器 ClassLoader ............................................................................................................................................................................................... 6
Spring aop 原理 ........................................................................................................................................................................................................ 6
Aop 代理 ................................................................................................................................................................................................................... 7
Spring 事物 ............................................................................................................................................................................................................. 10
数据库锁 ................................................................................................................................................................................................................. 12
ThreadLocal ............................................................................................................................................................................................................. 13
Spring TaskExecutor 线程池 .................................................................................................................................................................................... 16
2
Spring 原理
Spring ioc 概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系。
核心:beanFactory;在 Spring 中,beanFactory 创建的各个实例称作 bean,其通过 java 反射实现
Spring 还有一个核心就是 AOP 这个就是面向切面编程,可以为某一类对象 进行监督和控制(指定类或者通用)从而达到对一个
模块扩充的功能。这些都是通过配置类达到的。AOP 其实现的原理为动态代理(面向接口使用 JDK 的,面向类使用 cglib),
Spring 目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring 根据这些
配置 内部通过反射去动态的组装对象)
要记住:Spring 是一个容器,凡是在容器里的对象才会有 Spring 所提供的这些服务和功能。
Spring 里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了,是一个很常用的设计模式), Spring 里的配置是很多的,
很难都记住,但是 Spring 里的精华也无非就是以上的两点,把以上两点跟理解了 也就基本上掌握了 Spring.
Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理
bean 的方式,组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory
使用控制反转 (IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、
EJB、电子邮件、国际化、校验和调度功能。
Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地
使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring
AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消
息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的
异常遵从通用的 DAO 异常层次结构。
Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis
SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框
架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配
置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。
Spring 内部工作机制
Spring 的 AbstractApplicationContext 是 ApplicationContect 的抽象实现类,该抽象实现类的 refresh()方法定义了 Spring 容器再加载配置
文件后的各项处理过程。
1、 初始化 BeanFactory
初始化 BeanFactory:根据配置文件实例化 BeanFactory,在 obtainFreshBeanFactory()方法中,首先调用 refreshBeanFactory()方法刷新
BeanFactory,然后调用 getBeanFactory()方法获取 BeanFactory,这两个方法都是由具体子类实现。在这一步里,Spring 将配置文件的信息
装入容器的 Bean 定义注册表(BeanDefinitionRegistry)中,但是此时 Bean 还没有初始化;
2、 调用工厂后处理器
根据反射机制从 BeanDefinitionRegistry 中找出所有实现了 BeanFactoryPostProcessor 接口的 Bean,并调用其 postProcessBeanFactory()
接口方法;
3、 注册 Bean 后处理器
根据反射机制从 BeanDefintionRegistry 中找出所有实现了 BeanPostProcessor 接口的 Bean,并将它们注册到容器 Bean 后处理的注册
表;
4、 初始化消息源
initMessageSource()初始化容器的国际化消息资源;
3
5、 初始化应用上下文事件广播器;
6、 初始化其他特殊的 Bean
这是一个钩子方法。子类可以借助这个方法执行一些特殊的操作,如 AbstractRefreshableWebApplicationContext 就使用该方法执行
初始化 ThemeSource 的操作;
7、注册事件监听器;
8、初始化所有单实例的 Bean,使用懒加载模式的 Bean 除外:
初始化 Bean 后,将它们放入 Spring 容器的缓存池中;
9、初始化上下文刷新事件
创建上下文刷新事件,事件广播器负责将这些事件广播到每个注册的事件监听器中。
Spring ioc 原理
所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个
容器,同时需要一种描述来让容器知道需要创建的对象与对象的关系。核心为 BeanFactory,实现机制为 java 反射
Bean 生命周期
体过程如下:
1. 当调用者通过 getBean(beanName)向容器请求某一个 Bean 时,如果容器注册了
org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor 接口,则在实例化 Bean 之前,
将调用接口的 postProcessBeforeInstantiation()方法;
2. 根据配置情况调用 Bean 的构造函数或工厂方法实例化 Bean;
3. 如果容器注册了 InstantiationAwareBeanPostProcessor 接口,那么实例化 Bean 之后,调用该接口的
postProcessAfterInstantiation()方法,可在这里对已经实例化的对象进行一些"梳妆打扮";
4. 如果 Bean 配置了属性信息,那么容器在这一步着手将配置值设置到 Bean 对引发的属性中,不过在设置每个属性之前将先调
用 InstantiationAwareBeanPostProcessor 接口的 postProcessPorpertyValues()方法;
5. 调用 Bean 的属性设置方法设置属性值;
剩余19页未读,继续阅读
资源评论
南巷Dong
- 粉丝: 3388
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功