spring零基础学习

spring学习3(基本XML配置)

2017-07-10  本文已影响0人  又是那一片天

配置Bean

基本配置

<bean id="hello" class="chen.HelloWorld"></bean>

配置属性值的两种方式:

1 通过property标签为bean实例赋值(set方法)
<bean id="hello" class="chen.HelloWorld">
        <property name="name" value="Spring"></property>
</bean>

这种赋值方式是spring容器通过实例的set方法为属性赋值

2 通过constructor-arg标签为bean实例赋值(构造器配置属性)
<bean id="zhansan" class="chen.Person">
        <constructor-arg value="张三" ></constructor-arg>
        <constructor-arg value="24" ></constructor-arg>
</bean>
<bean id="lishia" class="chen.Person">
        <constructor-arg value="1"  type="int"></constructor-arg>
        <constructor-arg value="2"  type="int"></constructor-arg>
</bean>
<bean id="lishib" class="chen.Person">
        <constructor-arg value="1"  type="int"></constructor-arg>
        <constructor-arg   type="int">
            <value>2</value>
        </constructor-arg>
</bean>

bean引用两种方式:

1 使用ref 指向引用bean
    <bean id="car" class="chen.Car">
        <property name="brand" value="宝马"></property>
        <property name="price" value="100000000"></property>
    </bean>
    <!-- 使用ref 指向引用bean  在Person类有Car类型的属性值-->
    <bean id="wu" class="chen.Person">
        <constructor-arg value="王五" ></constructor-arg>
        <constructor-arg value="24"  ></constructor-arg>
        <property name="car" ref="car"></property>
    </bean>
2 使用内部bean 注意 :内部bean无法在外部引用
<bean id="zs" class="chen.Person">
    <constructor-arg value="猪三" ></constructor-arg>
        <constructor-arg value="25" ></constructor-arg>
        <property name="car" >
            <bean class="chen.Car">
                <property name="brand" value="奔驰"></property>
                <property name="price" value="100000000"></property>
            </bean>
        </property>
</bean>

使用<null/>赋值为null 意义不大

<bean id="px" class="chen.Person">
        <constructor-arg value="潘小" ></constructor-arg>
        <constructor-arg value="25" ></constructor-arg>
        <property name="car"><null/></property>
</bean>

级联属性 注意:要先创建级联属性 然后在赋值

<bean id="car" class="chen.Car">
        <property name="brand" value="宝马"></property>
        <property name="price" value="100000000"></property>
</bean>

<bean id="hx" class="chen.Person">
        <constructor-arg value="何小" ></constructor-arg>
        <constructor-arg value="25" ></constructor-arg>
        <property name="car" ref="car"></property>
        
        <property name="car.brand" value="我换成法拉利"></property>
</bean>

集合属性赋值

<!--phones属性是一个集合对象 -->
<property name="phones">
            <!-- 用list标签中的 ref bean value子标签 来为list类型赋值-->
        <list>
            <!--phones属性是一个集合对象 -->
            <ref  bean="pg"/>
            <ref  bean="xm"/>
        </list>
</property>
<property name="phones">
            <!-- 用map标签中的 entry子标签的key value或value-ref 来为map类型赋值-->
        <map>
            <entry key="a" value="444"></entry>
            <entry key="a" value-ref="xm"></entry>
        </map>
</property>
<property name="XXXX">
            <!-- 用props标签中的 prop子标签 来为Properties类型赋值-->
        <props>
            <prop key="a">值1</prop>
            <prop key="b">值2</prop>
        </props>
</property>

配置独立集合bean 需要导入util命名空间 util:list util:map..等独立出来

<util:list id="list">
        <ref  bean="pg"/>
        <ref  bean="xm"/>
</util:list>

一些数据集合会被多个bean所引用时可以使用

通过p命名空间为bean的属性赋值,需要导入p命名空间

<bean id="hw" class="chen.phone" p:brand="华为" p:price="50000"></bean>

这样配置会很简单

总结:

property标签 和 constructor-arg标签 除了constructor-arg name属性 其他的配置方式基本一样
下一篇 spring学习4

上一篇 下一篇

猜你喜欢

热点阅读