Spring Bean的自动装配-XML配置

Bean的自动装配

  • 自动装配,spring满足bean依赖的一种方式
  • autowire
  • spring会在上下文中自动寻找,并自动给bean装配属性

在spring中有三种装配方式

  1. 在xml中显示的配置
  2. 在java中显示的配置
  3. 隐式 的自动装配bean【重要】

XML Configuration Demo

  • 原先使用的方法

  • <bean id="cat" class="com.haoyun.POJO.Cat"/>
    <bean id="dog" class="com.haoyun.POJO.Dog"/>
    
    <bean id="People" class="com.haoyun.POJO.People">
        <property name="name" value="haoyun"/>
        <property name="cat" ref="cat"/>
        <property name="dog" ref="dog"/>
    </bean>
    
  • @Test
    public void CatDogTest(){
        ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        People people = (People) classPathXmlApplicationContext.getBean("People");
        people.getCat().shout();
        people.getDog().shout();
        classPathXmlApplicationContext.registerShutdownHook();
    }
    
  • 其他类需要使用ref

  • 现在加入两个自动装配的autowire选项

  • byName

    • <bean id="cat" class="com.haoyun.POJO.Cat"/>
          <bean id="dog" class="com.haoyun.POJO.Dog"/>
      <!--    <bean id="dog1" class="com.haoyun.POJO.Dog"/>如果这里的id更改,就找不到了-->
          <!--byName:会自动再容器上下文查找,和自己对象set方法后面值对应的bean id-->
          <bean id="People" class="com.haoyun.POJO.People" autowire="byName">
              <property name="name" value="haoyun"/>
          </bean>
      
  • byType

  • <bean id="cat" class="com.haoyun.POJO.Cat"/>
        <bean class="com.haoyun.POJO.Dog"/>
    <!--    <bean id="dog" class="com.haoyun.POJO.Dog"/> 但是不能配重,全局只能有一个-->
        <!--连bean-id都可以不用-->
        <!--byType:自动在容器的上下文查找,和自己对象相同类型bean-->
        <bean id="People" class="com.haoyun.POJO.People" autowire="byType">
            <property name="name" value="haoyun"/>
        </bean>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值