spring的核心思想IOC和AOP

spring的核心思想IOC和AOP
IOC和AOP并不是Spring提出的,在Spring之前就已经存在,Spring只是在技术层面给这两个思想做了非常好的实现。
IOC:控制反转,只是一种技术思想,不是技术实现。在IOC思想下,我们可以不用自己去new对象,而是由IOC容器去帮助我们实例化对象并且管理它。我们需要使用某个对象,去IOC容器中拿就行。
控制:对象的创建。实例化,管理的权利。
反转:控制权交给外部环境-spring框架或者IOC容器。
解决了什么问题。---解决了对象之间的耦合问题
比如我们在使用Dao对象的时候,有多个service需要用到Dao对象,那么我们硬编码在每个service中new多个Dao对象
DI:依赖注入。和IOC描述的是同一件事情,只不过角度不一样罢了
AOP:面向切面编程。
得先从oop说起,oop的三大特征:封装,继承,多态。oop编程思想可以解决大多数的代码重复问题,但是有一些情况处理不了,比如下面的在顶级父类animal中的多个方法中相同位置出现了重复代码,oop就解决不了。
比如需要对接口的性能进行监控,oop的思想,需要在每处需要监控的地方编写重复代码。
切:指横切逻辑,原有业务逻辑代码我们不能动,只能操作横切逻辑代码。
面:横切逻辑往往影响的是很多个方法,每个方法都如同一个点,多个切面构成。
spring是一个容器,目的是对象与对象之间(模块与模块之间)不用通过代码来关联,而是通过配置(比如xml)来管理,spring容器根据这些配置用反射来动态组装这些对象。
spring是轻量级应用框架。轻量,IOC/DI,面向切面,MVC框架,事务管理。
 

你可能感兴趣的:(spring,java,后端)