spring学习笔记03(狂神学习笔记)-隐式自动装配

原本是这样的:

<bean id="cat" class="com.pojo.Cat"/>
    <bean id="dog" class="com.pojo.Dog"/>

    <bean id="people" class="com.pojo.People">
        <property name="name" value="狂徒张三"/>
        <property name="cat" ref="cat"/>
        <property name="dog" ref="dog"/>
    </bean>

现在是这样的:

<bean id="cat" class="com.pojo.Cat"/>
        <bean id="dog" class="com.pojo.Dog"/>

        <bean id="people" class="com.pojo.People" autowire="byName">
            <property name="name" value="狂徒张三"/>
        </bean>

byName:

会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid !
autowire=“byName”

byType:

会自动在容器上下文中查找,和自对象属性类型相同的bean !
autowire=“byType”

<bean id="cat" class="com.pojo.Cat"/>
        <bean class="com.pojo.Dog"/>

        <bean id="people" class="com.pojo.People" autowire="byName">
            <property name="name" value="狂徒张三"/>
    </bean>

byname的时候,需要保证所有bean的id唯一, 并且这个bean需要和自动注入的属性的set方法的值一致!
bytype的时候,需要保证所有bean的class唯一, 并且这个bean需要和自动注入的属性的类型-致!

注解自动装配

在People.java中
需要set方法的属性:
@Autowired
直接在属性上使用即可!也可以在set方式上使用!
使用Autowired 我们可以不用编写Set方法了,前提是你这个自动装配的属性在IOC (Spring)容器中存在

如果显示定义了Autowired 的required属性为false,说明这个对象可以为null,
@Autowired(required = false)

小结

如果@Autowired自动装配的环境比较复杂,自动装配无法通过一个注解【@Autowired】完成的时候、
我们可以使用@Qualifier(value=“xxx”)去配置@Autowired的使用,指定一个唯一的bean对象注入!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值