Spring框架初解一----IOC(控制反转)及DI(依赖注入)
Spring框架初解一----IOC(控制反转)及DI(依赖注入)
一:Spring框架IOC及DI初解
初学Spring框架IOC,其中的门门道道让人脑子转不过来,博主也是,索性彻底研读各技术大牛对IOC的理解,这就有了以下理解,希望能给各位小伙伴带来一点启发。
<1> 首先,IOC中文意思控制反转,那么我们要了解什么是控制反转?为什么要反转?反转谁?
- IOC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意 味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
- 为什么反转?反转是为了降低组件之间的耦合度,提高组件的灵活度,方便测试。
- 以往组件之间的依赖性是通过new对象实现的, 如今我们可以通过Spring容器实现组件只需要依赖容器即可,而不用依 赖另一个组件。所有的依赖关系都由容器完成,而不必组件之间依赖,举个例子:你看上了一个漂亮妹砸,想要追求她, 于是 你就开始打听她的喜好,送她礼物,约她看电影等等,但是有了婚介所的存在,则完全没有必要了。你只需要将你的 需求告诉它--什么样的妹纸,它就可以给你匹配什么样的妹纸,然后你就可以直接恋爱,结婚。在这里,Spring容器就承 担着婚介所一般的功用
- <2>DI(依赖注入):组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入 到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系 统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可 指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。
二:Spring框架初解
通常组件之间的注入有三种:
- 接口形式的注入-------------(java前期学习中接触)
- seter与geter方式的注入
- 构造器方式的注入
<1>seter注入(geter注入与此同理)
普通注入:
数据源对象注入:
ps:此方法注入默认选择无参构造
<2>构造器注入
设值函数:
注入其他类:通过ref=""的方式
ps:此方法注入人为改变选择有参构造
ps:空值应写成 <null>
<3>集合类的注入
1.List
2.Set
3.Map
4.Properties
1.List集合的写法
2.Set集合的写法
3.Map集合的写法(entry<key,value>)
4.Properties集合的写法(properties文件)
同时,集合类的注入也可以设定值,其写法如下:
Spring框架初解一,预知下回分解,请点击XXXX