大概三周看完《Spring源码深度解析》写下一篇读后感玩
首先高度概括:内容过于丰富 重点不突出
本书共分8个模块
1、XML解析部分非常全面,
各种配置方法,
解析步骤都有介绍,这里其实就是些嵌套的调用,Spring源码肯定比自己写的优美。
2、SpringBean加载主要涉及
获取beanName、
缓存、
反射,
处理循环依赖、
属性注入,
单例与原型。其实概念就这么多作者跟踪的比较详细,感觉跟踪的太深反而有点抓不到重点。
3、AOP
动态代理(基于接口的代理-JDK动态代理)、
静态织入(基于类的代理-CGLIB )。
proxyFactory实现原理 怎么返回带有织入功能的代理对象
IntroductionAdvisor与PointcutAdvisor区别:IntroductionAdvisor只能用于类级别的拦截和Introduction类型的Advice;而PointcutAdvisor可以使用任意类型的Pointcut和除Introduction类型以外的Advice。
织入操作过程
4、spring jdbc 与 mybatis
Spring与JDBC 就是封装Template
MyBatis(简化sqlsession创建 参数封装 返回值封装)
sqlsessionFactory,创建sqlsession
mapper接口 (只有接口可以使用动态代理) MapperFactoryBean 创建代理,执行mapper逻辑
5、spring事务
spring的事务以 aop为基础
事务实现:
第一种,使用tx标签方式
第二种,使用代理方式
第三种,使用拦截器
spring支持的事务声明方式
(1) 编程式事务 当系统需要明确的,细粒度的控制各个事务的边界,应选择编程式事务。
(2). 声明式事务 当系统对于事务的控制粒度较粗时,应该选择申明式事务,通过<tx>标签和<aop>切面形式在xml中进行配置。
spring支持7种事务传播行为
spring中的事务隔离级别
事务回滚规则
6、SpringMVC
主要分析了几个主要类
ContextLoaderListener
DispacherSevlet
WebAppicationContext
HandlerExecutionChain
7、RMI
8、JMS
JMSTemplate
总结:
挺全面的,就是感觉没有灵魂内容 印象比较深的也就是Bean循环引用处理 以及 动态代理