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的所有内容.


阅读更多
文章标签: Spring Java
个人分类: Java
上一篇Spring装配Bean -- 通过Java代码装配Bean
下一篇Spring中环境与profile
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭