Are You Recruiter/Hiring Manager

*Filter candidates using TestYourCandidate.com and save 80% time ( saving time for recruiters and interviewers)
*More than 50% candidates can be filtered on Candidate Screening online tests
*Inbuilt exams are available in library, created and tested by experts Try Today...

Spring Tutorial Step by Step

Bean Scopes in Spring

When you create a bean definition what you are actually creating is a recipe for creating actual instances of the class defined by that bean definition.

Spring Framework supports exactly five scopes (of which three are available only if you are using a web-aware ApplicationContext).
singleton :
This scope available for both BeanFactory and ApplicationContext.
Scopes a single bean definition to a single object instance per Spring IoC container.
when you define a bean definition and it is scoped as a singleton, then the Spring IoC container will create exactly one instance of the object defined by that bean definition. This single instance will be stored in a cache of such singleton beans, and all subsequent requests and references for that named bean will result in the cached object being returned.
singleton scope is the default scope.

prototype :
This scope available for both BeanFactory and ApplicationContext.
Scopes a single bean definition to any number of object instances.
Create a new bean instance every time a request for that specific bean is made ( is injected into another bean or it is requested via a programmatic getBean() method call on the container) .

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 like XmlWebApplicationContext.
If you try using these next scopes with regular Spring IoC containers such as the XmlBeanFactory or ClassPathXmlApplicationContext, you will get an IllegalStateException complaining about an unknown bean scope.

session :
Scopes a single bean definition to the lifecycle of a HTTP Session. Only valid in the context of a web-aware Spring ApplicationContext like XmlWebApplicationContext.
If you try using these next scopes with regular Spring IoC containers such as the XmlBeanFactory or ClassPathXmlApplicationContext, you will get an IllegalStateException complaining about an unknown bean scope.

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 like XmlWebApplicationContext.
If you try using these next scopes with regular Spring IoC containers such as the XmlBeanFactory or ClassPathXmlApplicationContext, you will get an IllegalStateException complaining about an unknown bean scope.