我试图更好地理解 bean 的 Spring 实例化。为了说明我的疑问,假设我们有一个连接在控制器中的服务类,这里有一些问题:
- Spring 将如何管理 Controller 的生命周期?每个请求都会创建一个新对象吗?
- 一旦 Service 被实例化并连接到 Controller,Spring 会重新使用该对象引用将其连接到其他 bean 吗?
我试图更好地理解 bean 的 Spring 实例化。为了说明我的疑问,假设我们有一个连接在控制器中的服务类,这里有一些问题:
默认范围是单例,这意味着 bean 将被重用(即 1)不,不会为每个请求创建新对象,2)是的,对象引用将被重用)。
这一切都取决于 bean 范围。默认情况下,所有 bean 都在单例范围内 - 也就是说,它们仅由容器实例化一次。
如果您指定@Scope("request")
(或 xml 等效项),则将在请求范围控制器的所有实例中注入相同的服务对象(单例)。(但您很少需要请求范围的控制器)