Spring装配Bean -- 通过XML装配Bean

创建XML配置规范

        最简单的Spring XML配合如下所示:

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

</beans>

        用来装配Bean的最基本的XML元素包含在Spring-Beans模式之中,在XML文件中,本定义为根命名空间.<beans>是该模式中的一个元素,它是所有Spring配置文件的根元素.


声明一个简单的<bean>

<bean id="beatlesCD" class="main.java.Demo1.BeatlesCD"/>

        这声明一个简单的Bean,创建该Bean的类用过class属性来指定,使用全限定的类名.id属性用来给bean命名.


借助构造器注入初始化Bean

        1.<constructor-arg>元素

        2.使用Spring3.0所引入的c-命名空间

        第一种比第二种冗长繁琐


构造器注入Bean引用:

<bean id="cdPlayer" class="main.java.Demo1.CDPlayer">
    <constructor-arg ref="beatlesCD"/>
</bean>

        以上为对CDPlayer Bean的声明,引用上面beatlesCD Bean的引用.

        当Spring遇到这个<bean>元素时,它会创建一个CDPlayer的实例.<constructor-arg>元素会告知Spring要将一个ID为"beatlesCD"的Bean的引用传递给CDPlayer的构造器中.

        还可将字面量(常量)注入到构造器中,如下:        

    <bean id="cdPlayer" class="main.java.Demo1.CDPlayer">
        <constructor-arg ref="beatlesCD"/>
        <constructor-arg value="value"/>
    </bean>

        value属性表明给定的值要以字面量的形式注入到构造器中.

        装配集合:如果构造器需要一个集合如List,可用如下方式:

    <bean id="cdPlayer" class="main.java.Demo1.CDPlayer">
        <constructor-arg ref="beatlesCD"/>
        <constructor-arg>
            <list>
                <value>Demo1</value>
                <value>Demo2</value>
            </list>
        </constructor-arg>
    </bean>

        集合中的类型也可是其他Bean.


Setter方法设置属性:

        上述Bean的声明完全是通过构造器注入的,没有使用属性的Setter方法.下面例子是如何用Setter方法实现属性注入.

    <bean id="cdPlayer" class="main.java.Demo1.CDPlayer">
        <property name="cd" ref="beatlesCD"/>
    </bean>

        <property>元素为属性的Setter方法所提供的功能与<constructor-arg>元素为构造器所提供的功能是一样的.

        Setter方法同样也可以将字面量注入到属性中:

  <property name="name" value="vina"/>
        同样可以注入集合属性:
        <property name="names">
            <value>vina</value>
            <value>myvina</value>
        </property>

        


以上就是通过XML装配Bean的所有内容.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值