三、(一)使用XML配置Bean

使用 XML 装配 Bean 需要定义对应的 XML,这里需要引入对应的 XML 模式(XSD)文件,这些文件会定义配置 Spring Bean 的一些元素。

一个简单的 XML 配置文件如下:





Bean的简单配置

声明bean

这是一个Bean的最简单的配置,只声明了bean,并没有设置bean的属性的值。

配置属性简易值

        
        
    

property元素是定义类的属性,其中的name属性定义的是属性的名称,而value是它的值。

配置属性引用对象

    
    


    

使用ref属性去引用对应的Bean

通过构造函数配置

    
    


    

装配集合

  • List

    
        
            80
            90
            95
        
    


    
        
            80
            90
            95
        
    

List 属性为对应的 元素进行装配,然后通过多个 元素设值。

如果Bean的属性类型为数组类型或java.util.Collection接口的任意实现,都可以使用元素。

  • Map

    
        
            
            
            
        
    


    
        
            
            
            
        
    

Map 属性为对应的 元素进行装配,然后通过多个 元素设值,只是 entry 包含一个键值对(key-value)的设置

  • Properties

    
        
            80
            90
            95
        
    

Properties 属性为对应的 元素进行装配,通过多个 元素设值,只是 prop 元素有一个必填属性 key ,然后可以设置值。

要求键和值都必须为String类型,而允许键和值可以是任意类型

  • Set

    
        
            80
            90
            95
        
    

Set 属性为对应的 元素进行装配,然后通过多个 元素设值

无论是还是都可以用来装配java.util.Collection的任意实现或者数组的属性,不能因为属性为java.util.Set类型,就表示用户必须使用元素完成装配。如果使用元素配置java.util.List类型的属性,就需要确保List中的每一个成员都是唯一的。

  • Array

    
        
            80
            90
            95
        
    

对于数组而言,可以使用 设置值,然后通过多个 元素设值。

命名空间装配

除了上述的配置之外, Spring 还提供了对应的命名空间的定义,只是在使用命名空间的时候要先引入对应的命名空间和 XML 模式(XSD)文件。

c-命名空间

c-命名空间是在 Spring 3.0 中引入的,它是在 XML 中更为简洁地描述构造器参数的方式,要使用它的话,必须要在 XML 的顶部声明其模式:






    
    





c-命名空间属性名以 “c:” 开头,也就是命名空间的前缀。接下来就是要装配的构造器参数名,在此之后如果需要注入对象的话则要跟上 -ref,如c:student-ref。

我们有另外一种替代方式:



我们将参数的名称替换成了 “0” 和 “1” ,也就是参数的索引。因为在 XML 中不允许数字作为属性的第一个字符,因此必须要添加一个下划线来作为前缀。

p-命名空间

c-命名空间通过构造器注入的方式来配置 bean,p-命名空间则是用setter的注入方式来配置 bean ,同样的,我们需要引入声明:






    
    





同样的,如果属性需要注入其他 Bean 的话也可以在后面跟上 -ref

util-命名空间

工具类的命名空间,可以简化集合类元素的配置,同样的我们需要引入其声明

装配空值

显示的为属性装配null值是为了覆盖自动装配的值。

引入其他配置文件


你可能感兴趣的:(三、(一)使用XML配置Bean)