美文网首页
Spring学习笔记 | 详解bean的配置(二):Spring

Spring学习笔记 | 详解bean的配置(二):Spring

作者: 一颗白菜_ | 来源:发表于2019-10-09 09:13 被阅读0次

    XML配置里面的Bean自动装配

    Spring IOC容器可以自动装配Bean,需要做的仅仅是在<bean>autowire属性里指定自动装配的模式。

    • byType(根据类型自动装配)
      若IOC容器中有多个与目标Bean类型一致的Bean,在这种情况下,Spring将无法判断哪个Bean最适合该属性,所以不能执行自动装配。
    • byName(根据名称自动装配)
      必须将目标Bean的名称和属性名设置的完全相同。
    • constructor(通过构造器自动装配)
      当Bean中存在多个构造器时,此种自动装配方式将会很复杂,我们不推荐使用。
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
        <bean id="car" class="com.spring.autowire.Car" p:brand="Audi" p:price="300000"></bean>
        <bean id="address" class="com.spring.autowire.Address" p:city="BeiJing" p:street="HuiLongGuan" ></bean>
        <!-- 可以使用autowire属性指定自动装配的方式-->
        <!-- byName根据bean的名字和当前bean的setter风格的属性名进行自动装配若有匹配的,则进行自动装配;若没有匹配的,则不装配-->
        <bean id="person" class="com.spring.autowire.Person" p:name="Tom" autowire="byName"></bean>
    </beans>
    

    上述的配置,personcar属性和address属性就会根据上面定义的两个bean(名字与person中的setter方法名字一样)来进行自动装配,如果名字不一致那就不会装配。

    相关文章

      网友评论

          本文标题:Spring学习笔记 | 详解bean的配置(二):Spring

          本文链接:https://www.haomeiwen.com/subject/ngyipctx.html