The main difference between Stateless and Stateful Session Bean is that Stateless Session Bean is a business object without state (data) that describes the business logic while Stateful Session Bean is a business object with a state (data) that describes the business logic.
EJB stands for Enterprise Java Bean. It is a specification provided by Sun Microsystems. EJB helps in developing secure and scalable distributed applications. Moreover, it is a server side component as it is deployed into the server. One enterprise bean in Java is session bean, which contains the business logic. Also, it is possible to invoke it by a local, remote or a web service client. In overall, Session Bean can be either a stateless or stateful session.
Key Areas Covered
1. What is Stateless Session Bean
– Definition, Functionality
2. What is Stateful Session Bean
– Definition, Functionality
3. Difference Between Stateless and Stateful Session Bean
– Comparison of Key Differences
Key Terms
Container, EJB, Stateless Session Bean, Stateful Session Bean
What is Stateless Session Bean
Stateless Session Bean is a business object that represents business logic. It does not contain data. Also, the container does not maintain the conversional state between multiple method calls. Therefore, it is necessary to have an EJB container such as JBoss, Glassfish and Websphere to run an EJB application. Here, the EJB container pools the stateless bean objects to service the requests on demand. However, it is only possible for one client to access it at a time. In concurrent accessing, the EJB container routes each request to different instances.
Moreover, Stateless Session Bean can either be in does not exist state or ready state. First, the EJB container creates and maintains a pool of session beans. It injects the dependency and calls the @PostConstruct if required. Then, the client invokes the actual business logic. Next, the container calls @PreDestory method if any. Finally, the garbage collector can remove the bean.
What is Stateful Session Bean
Stateful Session bean, as like stateless session bean, is a business object that represents business logic without any data, and it does not maintain any states. However, in a stateful session bean, the container maintains the conversational state between multiple method calls. In other words, the stateful session beans maintain state both within and between transactions. Therefore, each stateful session bean is associated with a specific client.
Furthermore, containers are capable of saving and retrieving a bean’s state automatically while managing instance pools of stateful session beans. In overall, the stateful session beans update the fields each time when a transaction occurs. Therefore, the stateful session helps to maintain data consistency.
Difference Between Stateless and Stateful Session Bean
Definition
Stateless Session Bean is a business object that only represents business logic. In contrast, Stateful Session Bean is a business object that represents business logic like stateless session bean without maintaining states.
States / Data
The main difference between stateless and stateful session bean is that stateless session bean does not have states or data while the stateful session bean has states or data.
Involvement of Container
Moreover, another difference between stateless and stateful session bean is the involvement of the container. In the stateless session bean, the container does not maintain the conversational state between multiple method calls. On the other hand, the container maintains the conversational state between multiple method calls.
Annotations
@Stateless, @PostConstruct and @PreDestory are the annotations of Stateless Session Bean whereas @Stateless, @PostConstruct,@PreDestory, @PrePassivate, @PostActivate are the annotations of Stateful Session Bean.
Conclusion
In brief, Session Bean is an enterprise bean in Java which can either be stateless or stateful. The main difference between Stateless and Stateful Session Bean is that Stateless Session Bean is a business object without state (data) that describes the business logic while Stateful Session Bean is a business object with the state (data) that describes the business logic. In brief, the stateful session helps to maintain the data consistency than stateless session bean.
References:
1.“What Is EJB – Javatpoint.” Www.javatpoint.com, Available here.
2.“Stateless Session Bean – Javatpoint.” Www.javatpoint.com, Available here.
3.“Stateful Session Bean – Javatpoint.” Www.javatpoint.com, Available here.
Image Courtesy:
1.”Ejb” (CC BY-SA 3.0) via Commons Wikimedia
Leave a Reply