Spring bean 的作用域
原创
©著作权归作者所有:来自51CTO博客作者wx639033c32a1c9的原创作品,请联系作者获取转载授权,否则将追究法律责任
默认单例:
通过<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都有不同的会话
singleton 和 prototype 区别
第一 singleton 单实例, prototype 多实例
第二 设置 scope 值是 singleton 时候,加载 spring 配置文件时候就会创建单实例对象
设置 scope 值是 prototype 时候,不是在加载 spring 配置文件时候创建 对象,在调用
getBean 方法时候创建多实例对象