This article is to compare the transaction management of EJB and Spring Declarative Transaction is very important on J2EE environment and usually we don’t notice them because J2EE container or POJOs lightweight framework do help our dirty work.
You could find more about Spring Transaction
EJB-CMT(Container Managed Transaction) | Spring Declarative Transaction |
---|---|
EJB-CMT is tied with JTA. | Spring Transaction is flexible, not tied any implementation, it is consistent abstraction of transaction either we could use Global Transaction or Local Transaction. |
For EJB-CMT application server is required. | No Application server required for Spring Managed Transaction |
Container Managed Transaction apply only on the EJB specific classes. | Container Managed Transaction apply only on the EJB specific classes. |
EJB-CMT does not have flexible rule for rollback, First, if a system exception is thrown, the container will automatically roll back the transaction. Second, by invoking the setRollbackOnly method of the EJBContext interface, the bean method instructs the container to roll back the transaction. If the bean throws an application exception, the rollback is not automatic but can be initiated by a call to setRollbackOnly. | Spring Transaction provides comprehensive support for customized rolling back. It also provide automatically rolling back in case any run time exceptions thrown not on checked exceptions. |
You can not make influence to EJB CMT. | You could customize the Spring Transaction with help of Spring AOP. You could make own advice for Spring Transaction. |
EJB CMT provide the transaction across the remote calls. If your requirement such type then It is recommended you could EJB CMT. | Spring transaction manager can not support remote calls across the servers. For this support required high end application server. |
Spring Related Posts
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…