Spring容器中的bean对象是什么时候创建的 ?[包括: 默认单例 以及 非单例]
时间: 2024-05-23 14:12:53 浏览: 49
Spring bean为什么默认是单例
5星 · 资源好评率100%
在 Spring 容器中,Bean 对象的创建时机与作用域有关。下面分别介绍默认单例和非单例 Bean 的创建时机:
1. 默认单例 Bean 的创建时机:
默认情况下,Spring 容器会在启动时创建所有的单例 Bean 对象,并将其放入容器中。这是通过调用 Bean 的构造方法和 setter 方法来完成的。当 Bean 对象被创建时,Spring 会将其放入单例缓存池中,以便后续的请求能够快速获取到已经创建好的 Bean 对象。
2. 非单例 Bean 的创建时机:
对于非单例 Bean 对象,Spring 容器不会在启动时创建所有的实例,而是在每次请求时创建一个新的实例。这意味着每次请求都会创建一个新的 Bean 对象。非单例 Bean 的创建时机取决于作用域的类型,包括以下两种情况:
- prototype:每次请求都会创建一个新的 Bean 对象。
- request、session、globalSession、websocket:这些作用域都是 Web 应用程序特有的,每次请求都会创建一个新的 Bean 对象。
总之,单例 Bean 对象会在容器启动时创建,非单例 Bean 对象则是在每次请求时创建。这样可以避免创建过多的对象,提高应用程序的性能和响应速度。
阅读全文