Skip to content

Spring Bean Scope

Spring Bean has four scopes,

  • singleton

    Singleton instance per Spring IoC container. This is the default.

  • prototype

    Scopes a single bean definition to any number of object instances. That means, every time, it requires to inject the bean or the getBean method is called.

  • request

    Scopes a single bean definition to the lifecycle of a single HTTP request; that is each and every HTTP request will have its own instance of a bean created off the back of a single bean definition. Only valid in the context of a web-aware Spring ApplicationContext.

  • session

    Scopes a single bean definition to the lifecycle of a HTTP Session. Only valid in the context of a web-aware Spring ApplicationContext.

  • global session

    Scopes a single bean definition to the lifecycle of a global HTTP Session. Typically only valid when used in a portlet context. Only valid in the context of a web-aware Spring ApplicationContext.

    globalSession is something that is connected to Portlet applications. When your application works in a Portlet container it is built of some amount of portlets. Each portlet has its own session, but if you want to store variables global for all portlets in your application then you should store them in globalSession. This scope doesn't have any special effect different from the session scope in Servlet based applications. https://stackoverflow.com/questions/15407038/spring-bean-scopes-session-and-globalsession