EJB 3.0 vs Spring
Review the differences between EJB 3.0 and Spring in a structured comparison table, then continue with related interview questions, quizzes, and similar topic comparisons.
Difference Between
EJB 3.0 vs Spring - A key comparison and difference of the topics or subjects that will help you understand which is best for your use case. Check out to compare Spring and EJB 3.0 as very common job interview questions.
Difference between EJB 3.0 and Spring
EJB 3.0 vs Spring - A key comparison and difference of the topics or subjects that will help you understand which is best for your use case. Check out to compare Spring and EJB 3.0 as very common job interview questions.
|
EJB 3.0
|
Spring
|
|---|---|
| Dependency Injection: Can inject anything in the container including EJBs, data sources, JMS resources and JPA resources. | Dependency Injection: Can inject almost anything including lists, maps, properties and JNDI resources. |
| Transaction management: Works right out of the box, but only JTA is supported. | Transaction management: Have to configure it to make it work, but supports a number of strategies including JTA, JDBC and Hibernate. |
| Persistence: Tightly integrated through JPA. | Persistence: Framework support for JPA, Hibernate, JDBC, iBatis. |
| State management: Robust support through Stateful Session Beans and Extended Persistence Context. | State management: Indirect support dependent on web container session management. |
| Web Services: Seamless support for JAX-WS 2.0 | Web Services: Poor direct support, best integration available is via configuring XFire for registered beans. |
| Messaging: Supported out of the box through Message Driven Beans. | Messaging: Need to add configuration for message listeners. However, JMSTemplate adds nice abstraction over JMS. |
| AOP: Simple but limited support through interceptors. | AOP: Robust support through AspectJ and Spring AOP alliance. |
| Security: Integrated support for declarative and programmatic security through JAAS. | Security: Must add and configure Acegi security. However, support beyond JAAS is possible through Acegi. |
| Scheduling: Simple scheduling possible through EJB Timer service. | Scheduling: Must add and configure Quartz for scheduling. |
| Remoting: Integrated support through Session Bean remote interfaces. Supports distributed transactions and security. | Remoting: Remoting support may be added via configuration. Remote transactions and security are not supported. However protocols other than RMI such as Hessian and Burlap are supported. |
| Use EJB 3 If: - You like annotation and dislike a lot of XML configuration. - You prefer a tightly integrated solution stack that makes sensible default choices for you and minimizes configuration. - Your application is very stateful. - Standardization is an important consideration. - You use JSF and are considering using Seam. |
Use Spring if: - Your application requires fine-grained control at the container level. - Your application requires a lot of configuration beyond gluing together components and resources. - You need advance AOP feathers. |
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Related differences
Explore similar comparisons connected to EJB 3.0 and Spring for broader context and interview preparation.
Get differences from below
Browse all available topic comparisons below, or use the search field above to narrow the list instantly.