持续学习spring之 依赖注入

继续学习spring之 依赖注入

spring一直在学,那我们为什么要使用spring呀,我们使用spring那他一定有他的优点啦,那么spring的主要优点是什么那,走天在看书时,见到这么一句话:“spring的主要优点是解耦和脱离容器”,当时怎么也不明白,后来查看资料,总结了一点,

(1)spring的核心思想我们可以用两个字来描述------“解耦”,具体体现如下:

应用系统中的各个部分之间(包括应用系统的核心类代码之间和应用系统与所在框架平台之间)尽量形成松耦合的结构,使得应用系统有更多灵活性。

(2)应用系统的类之间的耦合是通过一种称为控制反转(Ioc)的技术实现的。

应用系统和底层应用服务器平台的耦合是借助AOP技术实现的,spring内置的AOP支持使得一些本来必须由容器支持的功能,例如事务控制可以脱离开容器运行,

(3)使用spring后系统的主要优点体现

利用其对象“延长依赖注入”组装代码,一方面减少了使用这些对象的客户中的大量代码,另一方面也提高了系统的扩展性和灵活性,实现类插件式编程。

 

 

接下来简单说一下spring中的Ioc,这也是在spring中常用的,

第一点: Ioc = inversion of control(将原来的由程序控制“对象之间的关系”转由容器来控制)

Ioc  :用白话来讲它就是用容器来控制程序内各类之间的关系,而并不是在代码中由程序代码直接操控,

这也就是所谓的“控制反转”的概念所在,控制权有应用代码转到了外部容器,控制权的转移,就是:“反转”啦,

第二点:IOC 是一种使应用程序逻辑外在化的设计模式
因为提供服务的组件是被“注入”的而不是被“直接写入”到请求者(客户端)的代码中
这样将能够大大地减少对象的请求者对服务提供者的特定实现逻辑的依赖----因为我们已经将依赖的具体 “定位信息”从请求者中分离出来。

第三点:实现依赖注入的几种类型:

(1)属性注入(setter Injection )

(2)构造方法注入(Constructer  Injection)

实现原理: 通过构造函数完成依赖关系的设定,容器通过调用类的构造方法,将其所需的依赖关系注入其中,