Spring的IOC基本概念

91 阅读2分钟

一、Spring简介:

控制反转是一个比较抽象的概念,先举一个实际生活中的例子说明。当人们想喝苹果汁的时候,在没有饮品店的时候,最直观的做法是,要买榨汁机,苹果和矿泉水。这些东西都是自己“主动”创造的过程,也就是这杯苹果汁需要自己主动创造。然而如今,有各种饮品店自己没必要去榨果汁了。如果想要喝苹果汁,可以直接找到饮品店的联系方式,描述想要的饮料信息,留下地址和联系方式下单等待即可。在这个过程中我并没有“主动”创造苹果汁,也就是苹果汁是由饮品店创造的,而不是我自己,但也达到了我的要求。在潜意识里我们会觉得对象应该由我们主动创造,但事实上这并不是我们的真实需求,因为也许你对这个领域并不精通,这个时候把创建对象的主动权转交给别人,这就是控制反转的概念。控制反转这个理念虽然理解上有些困难,但是好处在于降低了对象之间的耦合。这里对象的产生依靠于IoC容器,而不是开发者主动的行为。主动创建的模式,责任归于开发者,而在被动模式下,责任归于IoC容器。基于这样的被动形式,我们就说对象被控制反转了。

一个轻量级框架,以IOC(Inversion of Control 控制反转)和AOP( Aspect Oriented Programming 面向切面编程)为核心,还提供了声明式事务,对DAO层(Spring JDBC)的支持。

二、SpringIOC:

1、依赖:一般通过局部变量、方法参数、返回值等建立的对于他对象的调用关系。

比如:在A类的方法中,实例化了B类的对象,并调用了它的方法来完成待定的功能,我们就可以说A类依赖于B类。

2、控制反转,也叫做依赖注入(Dependency Injection),是一种面向对象编程的设计理念,用来降低代码之间的耦合度。

在我们之前的代码中,service是依赖于Dao层,如果需求发生了变化就需要去更换Dao的实现类,会导致service层中的代码也要随之改变,不利于程序的扩展和维护

控制反转:service层不在依靠自身的代码去获得具体的Dao层,而是把这一工作交给“第三方工厂”(Dao工厂),从而避免了和Dao实现类之间的耦合,即:控制权有service层转移到了第三方,这就是“控制反战”。