Spring装配Bean——通过配置XML装配bean

来源:互联网 发布:演唱会抢票软件 编辑:程序博客网 时间:2024/05/22 15:41

在这里,我仍旧直接通过例子来解释怎么通过xml装配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:c="http://www.springframework.org/schema/c"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">    <!--通过xml装配bean-->    <!--步骤:    1.创建XML配置规范(即创建一个SpringXML文档)    2.声明bean(bean元素类似于JavaConfig中的@Bean注解)    3.注入bean    -->            <!--如果没有指明id属性,那么会默认为全类名#0,其中“#0”是一个计数的形式,用于区分相同类型的其他bean    这里建议最好自己设置id属性并指明id属性值    -->    <bean id="compactDisc" class="lm.practice.bean.impl.CompactDiscImpl"></bean>    <!--演示借助构造器注入初始化bean-->    <!--这个bean,当spring遇见的时候,会创建一个CDPlayer的实例,    constructor-arg会告诉spring要将这个id为compactDisc的bean引用传递到CDPlayer的构造器    -->    <bean id="cdPlayer" class="lm.practice.bean.CDPlayer">        <constructor-arg ref="compactDisc"/>    </bean>    <!--使用c-命名空间代替constructor-arg-->    <!--c:cd-ref="compactDisc"    c:表示c-命名空间前缀    cd:构造器参数名称    -ref:注入bean引用    compactDisc:要注入的bean的id    ***********************************    这里要说一下,cd是构造器的参数,可以使用_0或者_直接代替。    -->    <bean id="cdPlayerC" class="lm.practice.bean.CDPlayer" c:cd-ref="compactDisc"/>    <!--装配字面量:    constructor-arg的value属性进行装配字面量    -->    <bean id="blankDisc" class="lm.practice.bean.impl.BlankDisc">        <constructor-arg value="Sgt. Papper's Lonely Heartsub Band"/>        <constructor-arg value="The Beatles"/>    </bean>        <!--c命名的方式-->    <!--<bean id="blankDiscC" class="lm.practice.bean.impl.BlankDisc"-->          <!--c:_0="Sgt. Papper's Lonely Heartsub Band"-->          <!--c:_1="The Beatles"/>-->    <bean id="blankDiscC" class="lm.practice.bean.impl.BlankDisc"          c:title="Sgt. Papper's Lonely Heartsub Band"          c:artist="The Beatles"/>    <!--装配集合-->    <bean id="listDisc" class="lm.practice.bean.impl.ListDisc">        <constructor-arg value="Sgt. Papper's Lonely Heartsub Band"/>        <constructor-arg value="The Beatles"/>        <constructor-arg>            <list><!--这里也可以使用<set>,使用set不能保证存放顺序和重复值-->                <value>Sgt. Papper's Lonely Heartsub Band</value>                <value>The Beatles</value>            </list>        </constructor-arg>    </bean></beans>

相信大家都看得懂这样一个xml,而且我加了详细的注释。

1.通过xml装配bean,不可置疑的就是必须要有这么一个xml文档,该文档的跟为<beans>。然后在通过在xml文档中配置bean。

2.<bean>元素就是我们要设置的bean的标记了,id表示这个bean的标识,class表示类全名。这样就设置了一个简单的bean。

3.创建完bean之后,无可避免的就是注入bean。有两种方式实现构造器注入,一种是通过construtor-arg,一种是通过c-命名空间,这两种方式可以相互替代,但是construtor-arg可以注入集合,c-命名空间暂时不支持集合注入。这里有一些需要说明的地方,就是c-命名空间的c:前缀之后紧跟着的参数,上面的注释中说的很详细,可以是构造器的参数,也可以是_计数(这里之所以加上下划线,是因为数字不允许作为参数的开头)。



0 0