1.Spring默认情况下是如何管理这个 Bean 的:
默认情况下 Bean 是单例的。(单例: singleton )
在 Spring 上下文初始化的时候实例化。
每一次调用 getBean ()方法的时候,都返回那个单例的对象。
2.当将 bean 的 scope 属性设置为 prototype :
bean 是多例的。
spring 上下文初始化的时候,并不会初始化这些 prototype 的 bean 。
每一次调用 getBean ()方法的时候,实例化该 bean 对象。
prototype 翻译为:原型。
3其它 scope
scope 属性的值不止两个,它一共包括8个选项:
. singleton :默认的,单例。
. prototype :原型。每调用一次 getBean (方法则获取一个新的 Bean 对象。或每次注入的时候都是新对象。
. request :一个请求对应一个 Bean 。仅限于在 WEB 应用中使用。
. session :一个会话对应一个 Bean 。仅限于在 WEB 应用中使用。
. global session : portlet 应用中专用的。如果在 Servlet 的 WEB 应用中使用 global session 的话,和 session 一个效果。( portlet 和 servlet 都是规范。 servlet 运行在 servlet 容器中,例如 Tomcat 。 portlet 运行在 portlet 容器中。)
. websocket :一个 websocket 生命周期对应一个 Bean 。仅限于在 WEB 应用中使用。
. application :一个应用对应一个 Bean 。仅限于在 WEB 应用中使用。
.自定义 scope :很少使用。