耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于
IOC(Inverse Of Control)控制反转,即,把创建对象的权利交给框架
也就是指将对象的创建、对象的存储、对象的管理交给了spring容器
spring容器是spring中的一个核心模块,用于管理对象对象,底层可以理解为一个map集合
在此之前,当需要对象时,通常是利用new关键字创建一个对象
但由于new对象会提高类和类之间的依赖关系,即代码之前的耦合性
1 private EmpService service = new EmpServiceImpl();
而现在我们可以将对象的创建交给框架来做
1 private EmpService service = (EmpService)BeanFactory.getBean("EmpService")
只需要将类提前配置在配置文件中,就可以将对象的创建交给框架来做。当需要对象时,不需要自己创建,而是通过框架来直接获取即可,省去了new对象的过程,自然就降低类与类之间的依赖关系,也就是耦合性。
控制反转IOC(Inversion of Control)是一种设计思想,DI(依赖注入)是实现IOC的一种方法,也有人认为DI只是IOC的另一种说法,没有IOC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是:获取依赖对象的方式反转了。
IOC是Spring框架的核心内容,使用多种方式完美的实现了IOC,可以使用XML配置,也可以使用注解,新版本的Spring也可以零配置实现IOC
Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时在从IOC容器中取出需要的对象
采用XML方式配置Bean的时候,Bean的定义信息和实现分离的,而采用注解的方式可以把两则合为一体,Bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的。
控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IOC容器,其实现方式就是依赖注入(DI)
原文:https://www.cnblogs.com/lxzlovewyq/p/13581517.html