TypechoJoeTheme

小屿's Blog

统计
登录
用户名
密码

Bean的自动装配

2021-02-07
/
0 评论
/
142 阅读
/
正在检测是否收录...
02/07

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

byType(根据类型自动装配)

若IOC容器中有多个与目标Bean类型一致的Bean。在这种情况下,Spring将无法判断哪个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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

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

    <bean id="people" class="com.yv.pojo.People" autowire="byName">
        <property name="name" value="大恐龙"/>
    </bean>

</beans>

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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

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

    <bean id="people" class="com.yv.pojo.People" autowire="byType">
        <property name="name" value="大恐龙"/>
    </bean>

</beans>

自动装配的缺点

  1. 属性要么都是用自动装配的形式,要么不用,不能部分使用,部分不使用
  2. 要么byName,要么byType,不能兼用
朗读
赞(0)
版权属于:

小屿's Blog

本文链接:

http://koibito.top/index.php/archives/157/(转载时请注明本文出处及文章链接)

评论 (0)
夜空
码农生来就只知道前进
59 文章数
7 评论量

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月