zoukankan      html  css  js  c++  java
  • XML 配置里的 Bean 自动装配

    在XML文件中,
    先看一下下面的代码:

    <bean id="student" class="com.jeremy.spring.beans.student">
        <property name="s_name" value="jeremy"></property>
        <property name="age" value="20"></property>
        </bean>
        
        <bean id="teacher" class="com.jeremy.spring.beans.teacher">
        <property name="tch_name" value="java"></property>
        <property name="tch_age" value="20"></property>
        <property name="student">
                <ref bean="student"/>
        </property>
        
        </bean> 

    颜色加深部分,以前我们对Bean依赖其他的Bean时,需要具体的指定是那个Bean,以供容器初始化时装载,但是有没有一种方法能让Bean依赖的Bean自动被装载呢??不需要具体的指定是哪一个Bean

    答案是有的:

    Spring IOC 容器可以自动装配 Bean.
    需要做的仅仅是在 <bean> 的 autowire 属性里指定自动装配的模式
    byType(根据类型自动装配): 若 IOC 容器中有多个与目标 Bean 类型一致的 Bean. 在这种情况下, Spring 将无法判定哪个 Bean 最合适该属性, 所以不能执行自动装配. (比如Bean1中有一个属性的类型是对象Student类型,那指定这个类型后Spring会自动XML文件是否配置对象Student类型的Bean,如果有就装配,没有就不能执行自动装配,而且如果有多个类型相同的Bean也不行,)
    byName(根据名称自动装配): 必须将目标 Bean 的名称和属性名设置的完全相同.(大小写也要注意)
    constructor(通过构造器自动装配): 当 Bean 中存在多个构造器时, 此种自动装配方式将会很复杂. 不推荐使用

    代码:

    <bean id="student" class="com.jeremy.spring.beans.student">
        <property name="s_name" value="tom"></property>
        <property name="age" value="20"></property>
        </bean>
        
        <bean id="teacher2" class="com.jeremy.spring.beans.teacher" autowire="byName" >
        <property name="tch_name" value="java"></property>
        <property name="tch_age" value="20"></property>
        </bean> 
  • 相关阅读:
    redis在redhat上的的安装和登录
    redis主从复制以及数据同步的原理
    redis持久化的认识和使用注意点
    redis慢查询的简单认识和事务、订阅的认识
    第三章redis键的管理以及操作认知
    第二章redis数据类型的使用和介绍
    第一章 redis学习的简单介绍和简单的功能使用
    mysql第一次学习和使用
    第七章 mysql 事务索引以及触发器,视图等等,很重要又难一点点的部分
    第六章 MySQL 查询
  • 原文地址:https://www.cnblogs.com/jeremy-blog/p/4024578.html
Copyright © 2011-2022 走看看