Spring中的依赖注入

IOC(控制反转)的作用:降低程序之间的耦合度(依赖关系)。
在Java中,依赖关系的管理都交给spring来维护。当当前类需要用到其他类的对象时,由spring来为我们提供,我们只需要在配置文件当中进行说明。
依赖关系的维护就称为依赖注入。
一共有三类数据可以注入:基本类型和String、其他bean类型、复杂类型/集合类型。
注入方法有三种:构造函数、set方法、使用注解提供。
经常变化的数据并不适用于注入的方式。

构造函数注入

使用的标签:constructor-arg
出现的位置:bean标签的内部
属性:
type:用于指定要注入数据的数据类型,该数据类型也是构造函数当中某个或者某些参数的类型。

<bean id="唯一标识" factory-bean="工厂名" factory-method="方法名" >
        <constructor-arg type="java.lang.String" value="test">     </constructor-arg>
    </bean>

上述代码指的是将“text”注入给构造函数中string类型的参数,必须配合下列参数进行使用
index:要注入的数据给构造函数中指定的位置,index表示位置参数,从0开始。
name:要注入的数据给构造函数中指定的名称,name表示名称。
value:用于提供基本类型和string类型的数据。
ref:用于指定其他的bean类型的数据,它指的是在springIOC核心容器中出现过的bean对象。
优势:
1、在获取bean对象时,注入数据是必须的操作,否则对象无法创建成功。
2、改变了bean对象的实例化方法。我们在创建对象时,如果用不到这些数据也必须提供。

set方法注入

使用的标签:property
出现的位置:bean标签的内部
标签的属性:
name 指定注入时所使用的set方法的名称
value 用于提供基本类型和string类型的数据
ref 用于指定其他bean类型的数据,指的是spring中的ioc核心容器中出现过的bean对象。
例:

 <bean id="唯一标识" factory-bean="工厂名" factory-method="方法名" >
        <property name="name" value="zby"></property>
    </bean>

将“zby”注入给以setName为方法名的函数。要去掉set并且将Name的大写改为小写。
优势:创建对象时没有明确的限制,可以直接使用默认构造函数。
弱势:如果有某个成员必须有值,那么获取对象有可能set方法未执行。

注入集合数据

当方法的参数是集合类型的数据时,使用这种方法。
外层标签使用property
用于给list结构集合注入的标签:list array set
用于给map结构集合注入的标签:map props
结构相同,标签可以互换。
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值