Spring学习笔记 | 详解bean的配置(二):Spring中Bean的自动装配

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方法名字一样)来进行自动装配,如果名字不一致那就不会装配。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容