美文网首页
Spring作用域

Spring作用域

作者: YoungJadeStone | 来源:发表于2020-05-17 05:50 被阅读0次

    当我们在定义Bean的时候,不仅可以设置它的值,而且可以设置它的作用域(scope)。

    scope种类

    Spring bean的scope有这么几种:

    • singleton: (Default) Single bean definition for a single object instance per container. 在这个spring container里面,这个bean只有一个实例。这种bean主要用在stateless beans的情况。(个人理解:像是设置一些静态常量,可以全局使用。)

    • prototype: Single bean definition for multiple instances. 每次我们用ApplicationContext去call getBean()的时候,spring container就会创建一个新的实例。所以每个request都会创建一个新的这个bean的实例。这种bean主要用在stateful beans的情况。(个人理解:在server-client模型中,server要处理从client来的很多request,而且server希望知道每个request的信息,像是request的context,所以需要prototype。)

    • request: Single bean definition for a single HTTP request.

    • session: Single bean definition for the HTTP session.

    • globalSession: Single bean definition for the global HTTP session. Typically only valid when used in portlet context.

    • application: Single bean definition for the entire application bound to the lifecycle of a ServletContext

    在多数情况,我们只会使用singleton和prototype两种scope,如果在spring配置文件内未指定scope属性,默认为singleton。Request, session and application只有在the context of a web-aware ApplicationContext(web应用)才有效。

    scope设置

    可以用@scope来设置。


    reference: https://memorynotfound.com/spring-bean-scopes-singleton-vs-prototype/

    相关文章

      网友评论

          本文标题:Spring作用域

          本文链接:https://www.haomeiwen.com/subject/clfjohtx.html