1. Spring的核心思想:
a) 控制反转/依赖注入
(1) Spring Ioc: Inverse Of Control:将组件的创建由代码本身转移到外部容器(Spring容器),运行时由容器负责依赖关系的注入。
(2) 需要对象时从外部容器中拿来使用,关心对象的使用而不是对象的创建
(3) 使用Spring Ioc/di 的步骤
1. 定义组件(类)
2. 在容器中配置组件,以及组件间的依赖关系注入
3. 实例化容器,从容器中取出组件使用
b) 面向切面编程
(1) Spring AOP: Aspect OrientedProgramming : 基于Java中的代理(Proxy)机制实现的,目标是在不改变代码的情况下,给程序动态添加新的功能
(2) 实现AOP有两种方式,第一种是预编译方式,第二种是运行期动态代理
(3) 使用Spring AOP的步骤
1. 定义组件:业务组件、通知组件(前置、后置、环绕...)
2. 在容器中配置组件,以及组件间的依赖关系注入
3. 通过AOP注入通知
4. 实例化容器,从容器中取出组件使用
(4) 将公共的功能抽取出来,成为通知(Advice),运行时由容器负责织入(Weaving)通知,在哪个方法织入,哪个方法成为切入点(PointCut)