Spring Bean的属性和作用域

Spring Bean的属性和作用域

属性

<bean id="唯一标识符" class="完整类名" name="别名1,别名2,别名3"/>

class 类名

完整类名,用于反射创建类

id 唯一标识

遵循小驼峰命名,表示 Bean 在容器中的唯一标识,是不可重复的

name 别名

用于指定 Bean 在容器中的别名,这个别名是可以有多个(别名之间可以使用逗号或者空格隔开),所以在 Bean 的时候可以根据 id 也可以根据别名来获取
注意 在指定 name 以后,可以不需要 id,但是 name 的第一个名字就会自动作为 id 使用,其他的仍然是别名
不常用,用于模糊 Bean 获取方式

scope 作用域

创建并管理bean的一种方式

<bean id="唯一标识符" class="完整类名" scope="singleton(默认单例)"/>

singleton 单例

默认容器会为每一个Bean创建唯一的一个实例,在容器中管理,直到容器的销毁,Bean才会销毁,也是 scope 的默认值

prototype 原型

容器一开始并不会创建实例,而是当调用 getBean 方法时才会根据 class 创建一个新的实例,这个实例并不会纳入到容器中,使用完之后直接销毁,因此每次调用都会创建一个实例

需要集成在web环境中的作用域

reqeust 请求

servlet 中的请求作用域保持一致, Bean 会在一次请求响应后就销毁

session 会话

servlet 中的会话作用域保持一致,当客户端关闭浏览器后,销毁了会话id,服务端后台就会自动销毁这个 Bean