Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stateful beans and Stateless beans in Spring context

Tags:

spring

I am reading spring through its official documentation and at one place I came to a line that uses prototype scope for all stateful beans while singleton for stateless beans.

I know there is something as stateful as well as stateless beans in EJB but this is not what they have mentioned in the documents.

Can anyone explain to me what exactly this means of stateful as well stateless beans in Spring

Thanks in advance

like image 533
Umesh Awasthi Avatar asked Dec 22 '10 04:12

Umesh Awasthi


People also ask

What is stateful bean and stateless bean in Spring?

Stateful Session bean is a business object that represents business logic like stateless session bean. But, it maintains state (data). In other words, conversational state between multiple method calls is maintained by the container in stateful session bean.

What is the difference between stateful and stateless beans?

An instance of a stateful session bean has a unique identity that is assigned by the container at create time. Stateless: A stateless session bean does not maintain conversational state. Instances of a stateless session bean have no conversational state.

Why singleton beans are stateless?

The only restriction that the Singleton class puts on the JVM is that it can have only one instance of this class in the heap. And this is why ideal singleton bean must be stateless.

What are stateful beans?

What is a Stateful Session Bean? A stateful session bean is a session bean that maintains conversational state. Stateful session beans are useful for conversational sessions, in which it is necessary to maintain state, such as instance variable values or transactional state, between method invocations.


1 Answers

From spring perspective

  • stateless beans: beans that are singleton and are initialized only once. The only state they have is a shared state. These beans are created while the ApplicationContext is being initialized. The SAME bean instance will be returned/injected during the lifetime of this ApplicationContext.

  • stateful beans: beans that can carry state (instance variables). These are created EVERY time an object is required (like using the "new" operator in java).

These are not EJB statfull/stateless session beans.

like image 55
Aravind Yarram Avatar answered Sep 30 '22 09:09

Aravind Yarram