I am trying to learn Spring Framework, before that I used to create application with EJBs
[Web services]->[Business Layer]->[DAO Layer]
| [Database]
in following way
WebServices: Restful API using
Jersey
withurl mappings
, that support both JSON and XML format(news/list.json
,news/list.xml
). Once a request is received by an endpoint(url-mapped-method) it is forwarded to a relevant EJB through lookup(remote, local). EJB process every thing, apply business rules and return result as DTO(Data transfer object),Service then transform the result into required format (JSON, XML)Business Layer: Business Layer (Facade) implemented in
EJB
withremote
andlocal
interfaces, these EJBs can call other EJBs. WebService layer(and/or Timer service and MDBs) can also call any of the EJBs). For timer service related functionality I usedEJB Timer Service
and for Messages usedMessage Drive Bean
and interceptor for logging and auditing.DAO Layer: All the Database related functions(add,edit, delete, search)
JPA/Hibernate
usingEntityManager
are written here (Entity beans and HQL). Seamless Transaction support, each EJB's method (lookup-based) call is treated as a separate transaction and calling methods of DAO layer are part of same transaction(provided that no extra configuration is provided). multiple operations are carried out in a single transaction If one db operation fails all others are roll backed automatically. Each Table is mapped as an entity class with relations etc.
I have worked on Spring MVC
but could not map/understand correctly for above architecture
I know bit about AOP and that I think is a perfect replacement for Interceptors (or at least it work for me)
Now my question is how all these could be replaced in Spring framework?
- Jersey (RestAPi) alternative in Spring>
- EJB alternative in Spring (as EJB supports remoting, each lookup call to a method is treated as a transaction, calls to EJB's method could be intercepted and it comes with state-full and stateless flavors)?
- Timer Service alternative in Spring?
- Message Drive Bean alternative in Spring?
- Interceptor alternative is AOP in Spring (As per my experience and that serve my purpose)
- JPA(entity manager) alternative in spring?