默认单例:

Spring bean 的作用域_单实例

通过<bean> 标签的 scope 设置作用域:

  • singleton:唯一bean实例,Spring中的bean默认都是单例的。
  • prototype:每次请求都会创建一个新的bean实例。
  • web:
  • request:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。把对象放入request域。
  • session:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP session内有效。把对象放入session域。
  • global-session:全局session作用域,仅仅在基于Portlet的Web应用中才有意义,Spring5中已经没有了。Portlet是能够生成语义代码(例如HTML)片段的小型Java Web插件。它们基于Portlet容器,可以像Servlet一样处理HTTP请求。但是与Servlet不同,每个Portlet都有不同的会话

Spring bean 的作用域_java_02

singleton 和 prototype 区别
第一 singleton 单实例, prototype 多实例
第二 设置 scope 值是 singleton 时候,加载 spring 配置文件时候就会创建单实例对象
设置 scope 值是 prototype 时候,不是在加载 spring 配置文件时候创建 对象,在调用
getBean 方法时候创建多实例对象