Bean属性解析
1. id 属性 起名称 不能包含特殊符号 根据id 获得配置对象
2. class属性:创建对象所在全路径
3. name属性:功能和id一样 ,id不能包含特殊符号,name可以(基本不用,为了满足struts1遗留问题)
4. scope属性:Bean的作用范围
-singleton: 默认值 单例的
只有一个实例对象,就断创建多个对象,这些对象也是同一个对象,地址相同。此外,singleton类型的bean定义,从容器启动,到他第一次被请求而实例化开始,只要容器不销毁或退出,该类型的bean的单一实例就会一直存活。
通常情况下,如果你不指定bean的scope,singleton便是容器默认的scope
-prototype: 多例的
容器在接受到该类型的对象的请求的时候,会每次都重新 生成一个新的对象给请求方,虽然这种类型的对象的实例化以及属性设置等工作都是由容器负责的,但是只要准备完毕,并且对象实例返回给请求方之后,容器就不在拥有当前对象的引用,请求方需要自己负责当前对象后继生命周期的管理工作,包括该对象的销毁。也就是说,容器每次返回请求方该对象的一个新的实例之后, 就由这个对象“自生自灭”了。
对于那些不能共享使用的对象类型,应该将其定义的scope设为prototype。
-request: web项目中spring创建一个bean对象,将对象存到request域中
Spring容器,即XmlWebApplicationContext 会为每个HTTP请求创建一个全新的RequestPrecessor对象,当请求结束后,该对象的生命周期即告结束,如同Java web中request的生命周期。当同时有100个HTTP请求进来的时候,容器会分别针对这10个请求创建10个全新的RequestPrecessor实例,且他们相互之间互不干扰。
-session: web项目中…将对象存到session域中
比如存放登录信息。
-globalSession:web项目中,应用在prolet环境,如果没有prolet环境那么globalSession相当于session
全局的session,比如登录百度账号,在贴吧,知道,视频等各个链接中都共享这个账号。