Spring的两大核心:IOC(Inversion of Control)和AOP(Aspect Oriented Programming)
一、IOC的概念
IOC 全称为 Inversion of Control,(inversion 英[ɪnˈvɜːʃn]美[ɪnˈvɜːrʒn]n. 倒置; 颠倒; 倒转)。
还有一个从创建角度来看的词:DI(Dependency Injection),即依赖注入(在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件)。
对象A依赖于对象B,当对象 A需要用到对象B的时候,IOC容器就会立即创建一个对象B送给对象A。IOC容器就是一个对象制造工厂,你需要什么,它会给你送去,你直接使用就行了,而再也不用去关心你所用的东西是如何制成的,也不用关心最后是怎么被销毁的,这一切全部由IOC容器包办。
IOC:控制反转,其实是一种思想,传统的Java se是通过new来创建一个对象,是程序主动创建依赖对象。IOC是指,利用反射的原理将创建对象的权利交给Spring容器,spring在运行的时候根据配置文件来动态的创建对象和维护对象之间的关系,实现了松耦合的思想实现方式:配置文件,注解。
二、AOP的概念(Aspect Oriented Programming)
1、Aop:面向切面编程
3、Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码
AOP的作用:在程序运行期间,不修改源码对已有方法进行增强
优势:
减少重复代码
提高开发效率
维护方便
经典应用:事务管理、性能监视、安全检查、缓存 、日志等)
4、Spring基于XML的Aop