Spring的xml配置

spring的xml文件配置

1.使用xml装配Bean对象

  在applicationContext.xml文件中使用<bean></bean>标签进行装配。class中写要装配的Bean对象的全类名,id中写该Bean对象的唯一标识。

<bean class="类的全类名" id="该bean对象的唯一标识"></bean>

Spring的xml配置
说明:<bean></bean>标签中的id属性与name属性的区别

  id属性是唯一标识,该属性的值就是该Bean对象的唯一标识号。name属性可以为该Bean对象设置多个别名,每个别名之间可以使用空格或者逗号或者分号分隔;通过任何别名都可以获取到bean对象。但多个Bean对象的name属性值不能相同。

<bean class="类的全类名" name="标识1 标识2 ……"></bean>

Spring的xml配置

2. 基于有参构造函数的依赖注入

2.1 复杂类型的依赖注入

1)通过有参构造函数的方式注入Bean对象

<contructor-arg ref="对象的id属性值"></contructor-arg>

Spring的xml配置
2)通过c命名空间进行依赖注入

在spring的配置文件的约束中引入如下内容:

 xmlns:c="http://www.springframework.org/schema/c"
<bean c:有参构造函数的参数列表名-ref=" 对象的id属性值"></bean>

<bean c:_有参构造函数的参数列表索引下标-ref=" 对象的id属性值"></bean>

Spring的xml配置

2.2 简单类型的依赖注入方式

1)使用有参构造函数方式进行依赖注入

<constructor-arg value="属性值"></constructor-arg>

Spring的xml配置


<constructor-arg name="属性名" value="属性值"></constructor-arg>

Spring的xml配置


<constructor-arg index="索引" value="属性值"></constructor-arg>

Spring的xml配置
2)使用c命名空间进行依赖注入

在spring配置文件的约束空间中引入约束

xmlns:c="http://www.springframework.org/schema/c"

Spring的xml配置
3)注入List类型

在List集合中注入简单类型

<list>
      <value>值1</value>
      <value>值2</value>
      ……
</list>

Spring的xml配置

在List类型中注入对象

<list>
       <ref bean="对象1" />
       <ref bean="对象2" />
       ……
</list>

Spring的xml配置


Spring的xml配置

Spring的xml配置

  在List集合中,如果注入的是简单类型,则使用<list><value></value</list>;如果注入的是非简单类型,则使用<list><ref bean="" /></list>

4)注入Set集合

简单类型注入:

<set>
    <value>值1</value>
    <value>值2</value>
      ……
</set>

复杂类型注入:

<set>
    <ref bean="对象1" />
     <ref bean="对象2" />
      ……
</set>

下面以在Set中装配对象为例:
Spring的xml配置
注意:此处的Set集合的底层是HashSet,是一个有序的Set集合,可以保持集合中元素的顺序,且集合中的元素不可重复。

5)注入map集合

简单类型的注入:

<map>
      <entry key="key1" value="值1" />
      <entry key="key2" value="值2" />
       ……
</map>

复杂类型的注入:

<map>
      <entry key="key1" value-ref="对象1" />
      <entry key="key2" value-ref="对象2" />
       ……
</map>

Spring的xml配置
6)注入数组类型

简单类型的注入:

<array>
        <value>值1</value>
        <value>值2</value>
        ……
</array>

复杂类型的注入:

<array>
       <ref bean="对象1的id" />
        <ref bean="对象2的id" />
        ……
</array>

Spring的xml配置

3. 基于setter方法的依赖注入

3.1 装配简单类型

<property name="属性名" value="属性值"></property>

Spring的xml配置
注意:要区分成员变量与属性名。

  成员变量指的是在类中声明定义的变量或者常量;属性名指的是getter/setter方法去掉get/set后留下的部分再将首字母变为小写,例如:setTrack——>Track——>track。

3.2 装配复杂类型

1)利用setter方法装配对象

<property name="属性名" ref="要装配的bean对象的唯一标识"></property>

Spring的xml配置

2)利用setter方法装配数组

元素是简单类型时:

<array>
        <value>值1</value>
        <value>值2</value>
        ……
</array>

元素是复杂类型:

<array>
       <ref bean="对象1" />
       <ref bean="对象2" />
       ……
</array>

Spring的xml配置
3)利用setter方法装配List

元素是简单类型:

<list>
     <value>值1</value>
     <value>值2</value>
     ……
</list>

元素是复杂类型:

<list>
     <ref bean="对象1" />
     <ref bean="对象2" />
     ……
</list>

Spring的xml配置
4)利用setter方法装配Map集合

元素是简单类型:

<map>
     <entry key="key1" value="值1" />
     <entry key="key2" value="值2" />
     ……
</map>

元素是复杂类型:

<map>
      <entry  key="key1" value-ref="对象1"/>
      <entry  key="key2" value-ref="对象2"/>
      ……
</map>

Spring的xml配置

3.3 使用p名称空间注入

在spring的xml配置文件的空间约束中声明p名称空间的约束:

 xmlns:p="http://www.springframework.org/schema/p"
<bean id="标识符" class="要创建的bean对象的类的全类名" p:属性名="属性值" 
p:属性-ref="bean对象标识符"></bean>

Spring的xml配置

3.4 使用util名称空间的注入

利用setter方法,针对于List、Map、Set和数组等集合类型的注入。

使用util名称空间需要引入如下约束:

  xmlns:util="http://www.springframework.org/schema/util"
  
 xsi:schemaLocation="http://www.springframework.org/schema/util
       http://www.springframework.org/schema/util/spring-util.xsd"

Spring的xml配置
适用于数组和list集合

<util:list id="标识符">
     <ref bean="对象1" />
     <ref bean="对象2" />
     ……
</util:list>

Spring的xml配置
适用于Map集合

<util:map id="标识符">
    <!--map集合中的元素是简单类型
    <entry key="key1" value="值1" />
    <entry key="key2" value="值2" />
    ……
    -->
    <!--map集合中的元素是复杂类型
    <entry key="key1" value-ref="对象1" />
    <entry key="key2" value-ref="对象2" />
    ……
    -->
</util:map>

适用于set集合

<util:set id="标识符">
        <!--
         set集合中的元素是简单类型
         <value>值1</value>
         <value>值2</value>
         ……
         -->
         
         <!--
         set集合中的元素是复杂类型
         <ref bean="对象1" />
         <ref bean="对象2" />
         ……
         -->
</util:set>
上一篇:java – 识别有效的getter和setter


下一篇:Linux学习笔记(二)——文件/目录/VIM