bean 属性详细说明
属性名称 | 属性值 | 属性说明 |
---|---|---|
beans | Spring配置文件的根元素,包含一个或多个bean元素。 | |
id | Java Bean在BeanFactory中的唯一标识,代码中通过BeanFactory获取JavaBean实例时需以此作为索引名称。 | |
class | Java Bean 类名。 | |
name | 同上,如果给bean增加别名,可以通过name属性指定一个或多个id。 | |
scope | Bean的作用范围 | |
scope | singleton:默认值 单例的 | 只有一个实例对象,就算创建多个对象,这些对象也是同一个对象,地址相同。此外,singleton类型的bean定义,从容器启动,到他第一次被请求而实例化开始,只要容器不销毁或退出,该类型的bean的单一实例就会一直存活。 |
scope | prototype:多例的 | 容器在接受到该类型的对象的请求的时候,会每次都重新 生成一个新的对象给请求方,虽然这种类型的对象的实例化以及属性设置等工作都是由容器负责的,但是只要准备完毕,并且对象实例返回给请求方之后,容器就不在拥有当前对象的引用,请求方需要自己负责当前对象后继生命周期的管理工作,包括该对象的销毁。也就是说,容器每次返回请求方该对象的一个新的实例之后, 就由这个对象“自生自灭”了。对于那些不能共享使用的对象类型,应该将其定义的scope设为prototype。 |
scope | request | web项目中spring创建一个bean对象,将对象存到request域中,Spring容器,即XmlWebApplicationContext 会为每个HTTP请求创建一个全新的RequestPrecessor对象,当请求结束后,该对象的生命周期即告结束,如同Java web中request的生命周期。当同时有100个HTTP请求进来的时候,容器会分别针对这10个请求创建10个全新的RequestPrecessor实例,且他们相互之间互不干扰。 |
scope | session | web项目中…将对象存到session域中比如存放登录信息。 |
scope | globalSession | web项目中,应用在prolet环境,如果没有prolet环境那么globalSession相当于session,全局的session,比如登录百度账号,在贴吧,知道,视频等各个链接中都共享这个账号。 |
abstract | 设定ApplicationContext是否对bean进行预先的初始化。 | |
parent | 定义一个模板。 | |
autowire | 同 default-autowire | |
dependency-check | 同default-dependency-check | |
default-autowire | 默认的bean自动装配模式。可选5种模式 | |
default-autowire | no | 不使用自动装配。Bean的引用必须通过ref元素定义。 |
default-autowire | byName | 通过属性名字进行自动装配 |
default-autowire | byType | 如果BeanFactory中正好有一个同属性类型一样的bean,就自动装配这个属性。如果有多于一个这样的bean,就抛出一个致命异常,它指出你可能不能对那个bean使用byType的自动装配。如果没有匹配的bean,则什么都不会发生,属性不会被设置。如果这是你不想要的情况(什么都不发生),通过设置dependency-check="objects"属性值来指定在这种情况下应该抛出错误。 |
default-autowire | constructor | 这个同byType类似,不过是应用于构造函数的参数。如果在BeanFactory中不是恰好有一个bean与构造函数参数相同类型,则一个致命的错误会产生。 |
default-autowire | autodetect | 通过对bean 检查类的内部来选择constructor或byType。如果找到一个缺省的构造函数,那么就会应用byType。 |
default-dependency-check | 默认的依赖检查模式。可选四种。 | |
default-dependency-check | none | 不进行依赖检查。没有指定值的bean属性仅仅是没有设值。 |
default-dependency-check | Simple | 对基本类型和集合(除了合作者外,比如其他的bean,所有东西)进行依赖检查。 |
default-dependency-check | Object | 对合作者进行依赖检查。 |
default-dependency-check | all | 对合作者,基本类型和集合都进行依赖检查 |
default-lazy-init | 默认延迟加载。True 或False 。 | 用于告诉Spring容器一个类以及它是如何配置的。 |
lazy-init | True 或False | 延迟加载 |
init-method | 初始化方法,此方法将在BeanFactory创建JavaBean实例之后,在向应用层返回引用之前执行。一般用于一些资源的初始化工作。 | |
destroy-method | 销毁方法 | 此方法将在BeanFactory销毁的时候执行,一般用于资源释放。 |
factory-bean | 通过实例工厂方法创建bean,class属性必须为空,factory-bean属性必须指定一个bean的名字,这个bean一定要在当前的bean工厂或者父bean工厂中,并包含工厂方法。而工厂方法本身通过factory-method属性设置。 | |
factory-method | 设定工厂类的工厂方法。 | |
depends-on | Bean依赖关系。一般情况下无需设定。Spring会根据情况组织各个依赖关系的构建工作。只有某些特殊情况下,如JavaBean中的某些静态变量需要进行初始化(这是一种BadSmell,应该在设计上应该避免)。通过depends-on指定其依赖关系可保证在此Bean加载之前,首先对depends-on所指定的资源进行加载。 |
Bean 配置名称 | 属性名 | 配置说明 |
---|---|---|
< property > | 用于设置一个属性。 | |
< property > | name | 属性的名称 |
< property > | value | 指定bean的属性值。BeanFactory将自动根据Java Bean对应的属性类型加以匹配。如果需要将属性值设定为null,必须使用节点。 |
< property > | ref | 指定了属性对BeanFactory中其他Bean的引用关系。 |
< value > | 指定bean的属性值。 | |
< ref > | 指定了属性对BeanFactory中其他Bean的引用关系。 | |
< ref > | bean | 指定了属性对BeanFactory中其他Bean的引用关系。 |
< ref > | local | 指定了属性对BeanFactory中其他Bean的引用关系。(仅在本地(同一个)xml文件里寻找bean。 |
< ref > | parent | 指定了属性对BeanFactory中其他Bean模板的引用关系。 |
< list > | 指定bean的属性类型为List的属性值。 | |
< map > | 指定bean的属性类型为List的属性值。 | |
< set > | 指定bean的属性类型为List的属性值。 | |
< props > | 指定bean的属性类型为Properties的属性值。 | |
< prop > | key | 指定Properties的键 |
< idref > | 用来设置属性值为容器中其他bean的id 或name。 | |
< null > | 指定一个空值 | |
< constructor-arg > | 使用构造方法注入,指定构造方法的参数。 | |
< constructor-arg > | index | 设置参数的序号 |
< constructor-arg > | ref | 同ref |
< constructor-arg > | type | 参数类型。 |
< constructor-arg > | value | 参数的值。 |
< lookup-method > | lookup | 方法注入 |
< lookup-method > | bean | 要注入的bean名 |
< lookup-method > | name | 要注入的方法名称 |
< replaced-method > | 用来把已存在的方法实现替换为其他的实现。 | |
< replaced-method > | name | 要替换的方法名 |
< replaced-method > | replacer | 替换者类, 实现org.springframework.beans.factory.support.MethodReplacer 接口) |
< arg-type > | 方法返回的类型 | |
00000000000000000 | null | 见鬼的表格长度控制 |
参考:https://blog.youkuaiyun.com/lifeng_2009/article/details/5754658