【Spring-IOC】bean的属性
scope | 作用域 |
---|---|
id、name | 定义bean的唯一标识 |
class | bean的全类名 |
factory-bean | 工厂对象 |
factory-method | 工厂方法 |
lazy-init | 懒加载 |
depends-on | 依赖某个实例(在生命周期用到) |
init-methid | Bean初始化执行的方法 |
destory-metho | bean销毁时执行的方法 |
autowire | 自动装配(依赖注入) |
7.1 Scope属性
bean的作用域
7.1.1 属性值说明
Scpoe | 描述 |
---|---|
singleton | 单例模式创建bean,默认的scope就是单例模式 |
prototype | 原型,指定单个bean的实例对象数量为任意多个 |
request | web环境下,每一次独立请求都存在唯一实例,存在单个HTTP请求 中,bean 的作用域限于 HTTP请求 范围 |
session | web环境下,每一次会话都存在唯一的实例,存在单个的会话中,bean的作用域限于单次的会话范围 |
application | web环境下,这里的作用域时在servletContext上下文中的唯一的实例 |
websocket | web环境下,将单个bean的作用域限定为websocket 的生命周期 |
7.1.2 singleton和prototype的区别
- singleton的实例对象数量时唯一的,而prototype的实例对象是多个的
- singleton在容器初始化时就会实例化一个对象放在容器中,而prototype是在使用getBean方法是才会去创建这个bean的实例,每一次的实例都不一样。
- 效率的不同,singleton的效率会高一些,因为只会实例一次
- 线程的安全问题,prototype的线程会安全一些