• IOC(Inverse of Control):控制反转,也叫依赖注入
    IOC利用的是java反射机制。所谓控制反转是指,本来被调用者的实例是由调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给spring来管理创建,将对象交给容器管理,我们只需要在spring配置文件中配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把我们在配置文件中配置的bean都初始化好,然后在我们需要调用的时候,就把它已经初始化好的那些bean分配给我们需要调用这些bean的类。

  • AOP(Aspect-Oriented Programming):面向切面编程
    AOP利用代理模式,它可以说是对面向对象(OOP)的补充和完善。OOP引入封装、继承和多态性等概念将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面,对应用执行过程中的步骤进行抽象,从而获得步骤之间的逻辑划分。

AOP框架具有的两个特征:
1.各个步骤之间的良好隔离性
2.源代码无关性

面向切面编程在spring中主要表现为两个方面
1.面向切面编程提供声明式事务管理
2.spring支持用户自定义的切面