1,bean 的基本定义和 bean 别名
2, 容器中 bean 的作用域
singleton: 单例模式, 在整个 spring IoC 容器中, singleton 作用域的 bean 将只生成一个实例.
prototype: 每次通过容器的 getBean() 方法获取 prototype 作用域的 bean 时, 都将产生一个新的 bean 实例.
request: 对于一次 HTTP 请求, request 作用域的 bean 将只生成一个实例, 这意味着, 在同一次 HTTP 请求内, 程序每次请求该 bean, 得到的总是同一个实例. 只有在 web 应用中使用 spring 时, 该作用域才真正的有效.
session: 对于一次 HTTP 会话, sesion 作用域的 bean 将只生成一个实例, 这意味着, 在同一次 HTTP 会话内, 程序每次请求该 bean, 得到的总是同一个实例. 只有在 Web 应用中使用 spring 时, 该作用域才真正的有效.
global session: 每个全局的 HTTP Session 对应一个 bean 实例. 在典型的情况下, 仅在使用 portlet context 的时候有效. 只有在 Web 应用中使用 spring 时, 该作用域才真正的有效.
比较常用的是 singleton 和 prototype. 对于 singleton 作用域的 bean, 每次请求该 bean 都将获得相同的实例. 容器负责跟踪 bean 实例的状态, 负责维护 bean 实例的生命周期行为; 对于 prototype 作用域的 bean, 程序每次请求该 id 的 bean,spring 都会新建一个 bean 实例, 然后返回给程序. 这种情况下, spring 容器仅仅使用 new 关键字创建 bean 实例, 一旦创建成功, 容器就不再跟踪实例, 也不会维护 bean 实例的状态.
如果不指定 bean 的作用域, spring 容器默认使用 singleton 作用域.
spring 配置文件通过 scope 属性指定 bean 的作用域, 该属性可以接受 singleton,prototype,request,session,globalSession 五个值.
3,request 作用域
4,session 作用域
来源: http://www.bubuko.com/infodetail-3148989.html