Spring(1)——IoC与DI

大致上了解了一遍JavaWeb后,我又忍不住放纵了几天,太罪恶了(=´ω`=),今天开始继续学习。

这一次开始学习SSM框架。

一,IoC(控制反转)

1、概述

1)对象的创建控制权由程序转移到外部,这种思想称为控制反转(这样可以较小耦合)
2)Spring提供了一个容器,用来充当“外部”,称为IoC容器
3)IoC负责对象的创建、初始化等一系列工作,被创建或者被管理的对象在IoC容器中统称为Bean

4)基本格式

id为bean的名字,class表示bean定义类型

然后要注意:bean的name属性可以配置别名,作用几乎与id一样,但是可以配置多个,用空格分开即可
bean默认为单例(对象是同一个),可以用scope="prototype"配置成多例

二,DI(依赖注入)

在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入

1、setter注入

1)引用类型

①首先类中要有可访问的set方法
②配置标签使用ref属性注入引用类型对象

③基本格式

name属性表示配置哪一个具体属性
ref表示参照哪一个bean

2)简单类型(包括String类型)

①类中需要有可访问的set方法
②配置标签使用value注入值

2、构造器注入

不再需要类中提供set方法

1)简单类型

①类中需要带参构造
②不再使用标签而是:

2)引用类型

①类中需要带参构造

②基本格式

3、依赖自动装配

IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配

1)按类型

①对应的类中要有set方法
②配置bean时不再使用标签,直接使用的autowire="byType"
注意要注入的数据的类型在配置文件中必须有且只有一个

2)按名称

①使用的autowire="byName"
注意注入的数据类型必须在配置文件存在,并且变量名与其类型对应的bean的id必须相同

最后:自动装配用于引用类型依赖注入,不能对简单类型进行操作
自动装配优先级低于前面的setter注入和构造器注入

4、集合注入

基本格式


    (集合类型)
        
        ......
    


当是map集合时不用而是用
当是property集合时,集合类型那里变成了而给值那变成了value

你可能感兴趣的:(spring,java,intellij-idea)