Spring(1)——IoC与DI

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

这一次开始学习SSM框架。

一,IoC(控制反转)

1、概述

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

4)基本格式
<bean id="名字" class="对象的类的路径"></bean>
id为bean的名字,class表示bean定义类型

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

二,DI(依赖注入)

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

1、setter注入

1)引用类型

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

③基本格式
<property name="属性名" ref="有关系的那个bean名">
name属性表示配置哪一个具体属性
ref表示参照哪一个bean

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

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

2、构造器注入

不再需要类中提供set方法

1)简单类型

①类中需要带参构造
②不再使用<property>标签而是:
<constructor-arg name="构造器参数名" value="参数值">

2)引用类型

①类中需要带参构造

②基本格式
<constructor-arg name="构造器参数名" ref="参数类对应的bean名">

3、依赖自动装配

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

1)按类型

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

2)按名称

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

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

4、集合注入

基本格式

<property name="变量名">
    <array>(集合类型)
        <value></value>
        ......
    </array>
</property>
当是map集合时不用<value>而是用<entry key="" value="">
当是property集合时,集合类型那里变成了<props>而给值那变成了<prop key="">value</prop>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值