Spring Bean 的作用域有哪些?

Spring 面试题发布于

一、singleton(默认)

容器中只有一个实例,全局共享。适合无状态 Bean。

二、prototype

每次获取都创建新实例。适合有状态 Bean。

三、request(Web)

每次 HTTP 请求一个实例。

四、session(Web)

每个 HTTP Session 一个实例。

五、application(Web)

整个 ServletContext 一个实例。

六、websocket

每个 WebSocket 连接一个实例。

七、注意

singleton 注入 prototype Bean 时,prototype 只注入一次,不会每次都新。需用 ObjectFactory 或 lookup-method 解决。