bean的自动装配

bean的自动装配

Spring中有bean用三种装配方式:
(1)在xml文件中显示的配置
(2)在java中显示的配置
(3)隐式的自动装配
此处的自动装配就是第三种方式。

<1>byName自动装配

<bean id="a" class=" "/>
<bean id="b" class=" "/>
<bean id=" " class=" ">
  <property name="" value=" "/>
  <property name="" ref="a"/>
  <property name="" ref="b"/>
 </bean>

此时是手动装配。自动装配如下:

<bean id="a" class=" "/>
<bean id="b" class=" "/>
<bean id="M" class=" ">
  <property name="" value=" " autowire="byName"/>
 </bean>

此时会自动查找该类M中set方法参数中的属性名。即查找a和b,上文中配置了a、b。因此可以找到的该引用类型,并自动装配a、b。
注意:a、b的id名称必须对应为M类中set方法参数设置的属性名

<2>byType自动装配
使用方法将byName改为byType即可。

此时是根绝M类中应用的类查找,会在上下文中查找引用对应的class类。因此a、b的id名称可以随便取。
注意:此时如果配置同一个类的两个id。则会出错。因为此时会找到两个对应的id
在这里插入图片描述

<3>使用注解的自动装配
使用配置:
1、导入约束

xmlns:context="http://www.springframework.org/schema/context"

schemaLocation中加入:

http://www.springframework.org/schema/context   
https://www.springframework.org/schema/context/spring-context.xsd

2、使用配置

<context:annotation-config/>

(1)autowired

<bean id="a" class=" "/>
<bean id="b" class=" "/>
<bean id="M" class=" "/>

此时M若要装配a、b。则只需要在M类中,将要装配的引用类型上,加入@autowired即可(也可以在set方法上加入注解,此方法是先通过byType再通过byName实现。此时M类可以不使用set方法)
如下图:
在这里插入图片描述
附:
在这里插入图片描述
@Nullable注解表示对应的属性可以为null
在这里插入图片描述
@Qualifier使用:可以指定要装配的对象。(因为是通过byName方式,此时在xml文件中配置同一个类的多个id时,不会报错。而是会找到默认的dog222)
注意:Qualifier中value默认的对象只能和下面的dog是同一个类,不能默认为其它类。
在这里插入图片描述
java的注解:
Resource注解作用和autowire注解作用类似。它会先通过id查找,再通过class查找。当查找到多个对象时会报错。通过此方法必须查找的是唯一的对象。
在这里插入图片描述
通过name属性也可以设置默认装配的对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值