Spring三大核心思想
Spring三大核心思想分别是:控制反转(IOC),依赖注入(DI),面向切面编程(AOP)。
- IOC(控制反转):将组件间的关系从程序内部转移至外部容器(xml文件)中进行管理。
- DI(依赖注入):组件间的依赖关系由系统运行期间决定。外部容器将带有依赖关系的目标对象实例动态注入到系统中的各个组件中。
IOC与DI属于不和分割的关系,要实现IOC需要DI,实现DI必须使用IOC。 - AOP(面向切面编程):通俗来讲,是OOP的延伸。切分解剖封装的对象的内部,找出影响多个类的公共行为,并将他们再次封装到一个可重用的模块中去,命名为"Aspect",即切面。
AOP可以进一步将业务无关的但是与业务模块共同调用的逻辑操作单独封装起来,减少重复代码,降低耦合性,提高维护性。
使用”横切“技术,重要的是分辨核心关注点和横切关注点。核心关注点指的是核心业务处理流程,属于不可分割、尽量减少改动的部分;横切关注点指的是与核心业务流程关联度不大的流程,类似于权限管理、日志等等,但是会经常出现在核心关注点周围。因此AOP主要的目的就是将核心关注点与横切关注点分离。