Spring是一个开源框架,是一个大的容器,说到Spring,就不得不说它的两大核心点,IOC和AOP 简单来说,Spring就是一个轻量级的控制反转(IoC)/依赖注入(DI)和面向切面(AOP)的容器框架。
IOC控制反转/DI依赖注入
是基于工厂模式的,原本需要自己实例化的对象(也就是new),全部交由spring容器去控制了,这就是控制反转。(比如租房子。以前租房子需要一个房子一个房子找,费时费力,然后现在加入一个房屋中介,把你需要的房型告诉中介,就可以直接选到需要的房子,中介就相当于spring容器。)
IOC它支持多种注入方式,像属性(Setter方法)注入,构造注入和接口注入。注入其实就是DI,被spring IOC容器所管理的对象被称之为Bean。Spring的IOC容器通过反射的机制实例化Bean并建立Bean之间的依赖关系。简单地讲,Bean就是由Spring IOC容器初始化、装配及被管理的对象。获取Bean对象的过程,首先通过Resource加载配置文件并启动IOC容器,然后通过getBean方法获取bean对象,就可以调用他的方法。
AOP(面向切面)
是面向对象开发的一种补充,它允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求,我们用的AOP主要来做一些性能检测,访问控制,日志管理和事务处理这些事情,AOP使业务逻辑各部分间的耦合度降低,提高程序可重用性,提高开发效率。