第一季:7Spring Bean的作用域之间有什么区别【Java面试题】

时间:2022-10-03 14:58:45


第一季:7Spring Bean的作用域之间有什么区别【Java面试题】

前言


2022 9/30 13:56

路漫漫其修远兮,吾将上下而求索




第一季:7Spring Bean的作用域之间有什么区别

题目

Spring Bean的作用域之间有什么区别

2.6 bean的作用域★

在Spring中,可以在< bean>元素的scope属性里设置bean的作用域,以决定这个bean是单实例的还是多实例的。

默认情况下,Spring只为每个在I0C容器里声明的bean创建唯一一个实例,整个IOC容器范围内都能共享该实例:所有后续的getBean()调用和bean引用都将返回这个唯一的bean实例。该作用域被称为singleton,它是所有bean的默认作用域。

第一季:7Spring Bean的作用域之间有什么区别【Java面试题】

1.Spring Bean的作用域之间有什么区别

在Spring的配置文件中,给bean加上scope属性来指定bean的作用域如下:

singleton:默认值。唯一 bean 实例,Spring 中的 bean 默认都是单例的。在IOC容器的创建的时候创建Bean

prototype:原型的,每次请求调用getBean()都会创建一个新的 bean 实例。在IOC容器的创建的时候不会创建Bean

request: 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前WebApplicationContext内有效。

session:每一次 HTTP 请求都会产生一个新的 bean,不同的HTTP session 使用不用的bean,该 bean 仅在当前WebApplicationContext内有效。

global-session:全局session作用域,仅仅在基于portlet的web应用中才有意义,Spring5已经没有了。Portlet是能够生成语义代码(例如:HTML)片段的小型Java Web插件。它们基于portlet容器,可以像servlet一样处理HTTP请求。但是,与 servlet 不同,每个 portlet 都有不同的会话。

最后


2022 9/30 13:54


p6


Markdown 1123 字数 66 行数
HTML 987 字数 26 段