Spring Bean Scope

singleton

默认情况,为每个Spring IoC容器将单个Bean定义的Scope扩大到单个对象实例。

只有一个单例bean的共享实例被管理,所有对具有符合改bean定义的ID的bean的请求都会被spring容器返回改特定的bean实例。

prototype

将单个bean对应的scope扩大到任何数量的对象实例。

每次对该特定bean的请求都会创建一个新的bean实例。作为一项规则,你应该对所有有状态的bean使用prototype scope,对无状态bean使用singletong scope。

与其他scope相比,spring并不管理prototype bean的完整生命周期。容器对prototype对象进行实例化,配置和其他方面的组装,并将其交给客户端,而对改prototype实例没有进一步的记录。

request

将单个bean对应的scope扩大到单个HTTP请求的声明周期,即每个HTTP请求都有自己的Bean实例,改实例是在单个bean定义的基础上创建的。只在web感知的spring ApplicationContext的上下文中生效。

session

将单个bean定义的scope扩大到一个HTTP Session的生命周期。

application

将单个bean定义的scope扩大到ServletConetxt的生命周期中。

websocket

将单个bean定义的scope扩大到Websocket的生命周期。

 

posted @ 2023-03-10 14:34  小路不懂2  阅读(18)  评论(0编辑  收藏  举报