欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring.xml标签配置教程

程序员文章站 2022-03-07 22:50:55
使用ref来引用容器中其他对象实例,可以通过ref的local,parent,bean属性来指定引用的对象的beanname是什么 属性 说明...

使用ref来引用容器中其他对象实例,可以通过ref的local,parent,bean属性来指定引用的对象的beanname是什么

属性 说明
local 指定与当前配置的对象在同一个配置文件的对象定义的名称
parent 指定位于当前容器的父容器中定义的对象的引用
bean 适用于任何情况

对parent属性的说明:

beanfactory可以分层次,通过实现hierarchicalbeanfactory接口,容器a在初始化的时候可以首先加载容器b中的所有对象定义,然后加载自身的对象定义

使用示例



如果要往当前对象注入锁依赖的对象的名称而不是引用,那么通常可以使用value来完成

 3
    djnewslistener

但是上面的情况可能会存在输错字,使用idref可以检查这个beanname所在的bean是否存在

 3
    djnewslistener

bean可以作为内部bean标签


    

depends-on属性

spring容器会根据ref属性来指定bean的依赖,如果有时候没有使用ref标签就要使用depends-on属性来决定依赖关系



autowire

指定当前bean采用某种类型的自动绑定模式

但是要注意的是自动绑定只应用于“原生类型、string类型以及classes类型以外”的对象类型,对“原生类型、string类型和classes类型”以及“这些类型的数组”应用自动绑定是无效的。

使用示例


bean有5中自动绑定模式

1.no

不使用任何形式的自动绑定,完全依赖于手工明确配置各个bean之间的依赖关系


2.byname

按照类中声明的实例变量的名称,与xml配置文件中声明的bean定义的beanname的值进行匹配

public class bean{
    private bean2 bean2;
    ...
}




3.bytype

根据类型绑定,如果找不到相应的类型就自动报错

4.constructor

根据构造方法的参数类型进行的自动绑定

5.autodetect

这种模式是bytype和constructor模式的结合体,如果对象拥有默认无参数的构造方法,容器会优先考虑bytype的自动绑定模式。否则,会使用constructor模式。当然,如果通过构造方法注入绑定后还有其他属性没有绑定,容器也会使用bytype对剩余的对象属性进行自动绑定。

dependency-check

该功能可以帮我们检查每个对象某种类型的所有依赖是否全部注入完成

1.none不做依赖检查

2.simple对简单类型以及相关类型的集合进行依赖检查

3.object只对引用类型进行检查

4.all将simple和object相结合

lazy-init

延迟初始化

list对应注入对象类型为java.util.list及其子类或者数组类型的依赖对象

public class mockdemoobject{
    private list param1;
    private string[] param2;
    ...
    // 相应的setter和getter方法
    ...
}

    
         something
        
        
    

set对应java.util.set或者子类的依赖对象

public class mockdemoobject
{
    private set valueset;
    // 必要的setter和getter方法
    ...
}
配置类似于

    
         something
        
        
        
            ...
        
    

map使用entry作为其子标签

public class mockdemoobject{
    private map mapping;
    // 必要的setter和getter方法
}


        
            something
         8
        
            objectkey
             
        
        
            
                10 ...
            
        
< /property>

也可以这样配置


        
        
        
            
            ...
            
        
    

props是对应的类型是java.util.properties,只能配置string类型的key,value

public class mockdemoobject
{
    private properties emailaddrs;
    // 必要的setter和getter方法
    ...
}
配置类似于
fujohnwang@gmail.comsupport@spring21.cn
        ...
    

对应一个空元素