Spring支持几种bean的作用域?

spring 支持 5 种作用域,如下:

  • singleton:spring ioc 容器中只存在一个 bean 实例,bean 以单例模式存在,是系统默认值;
  • prototype:每次从容器调用 bean 时都会创建一个新的示例,既每次 getBean()相当于执行 new Bean()操作;
  • request:每次 http 请求都会创建一个 bean; session:同一个 http session 共享一个 bean 实例;
  • session:用于 portlet 容器,因为每个 portlet 有单独的 session
  • globalsession:提供一个全局性的 http session。

注意:使用 prototype 作用域需要慎重的思考,因为频繁创建和销毁 bean 会带来很大的性能开销。