spring 是一个强大的家族,而我们平常用的是spring framework,今天总结的就是这spring framework,其中有两大功能:ioc和aop。
在这个框架中ioc和aop的功能基本都是组合使用。总结了一下几点。
一、spring bean的生命周期。
- bean的实例化
- bean的属性注入
- bean初始化的前置处理 (aop)
- bean初始化
- 调用init方法
- bean初始化的后置处理(aop)
- 使用
- 销毁
- 调用destory方法
-
思考:
-
为什么第二步不和第一步同时进行?
答:要解决循环依赖问题
-
应用:
如何向静态类注入?什么原理?
答:因为静态类不需要实例化,按照正常步骤是无法向静态类中注入属性的,通过以上步骤可以看出,可以通过第五步调用init方法时向静态类中注入。
二、事务的控制
事务的原理就是用的aop,用的设计模式为代理模式,其中事务的实现方式有两种,cglib 和 jdk 自带,cglib 是用继承的方式来实现,而jdk的实现方式为实现接口。都是通过反射来实现(万能的反射)。生成代理类的时机是运行时。