Hola, encontramos la respuesta a lo que necesitas, continúa leyendo y la encontrarás más abajo.
Solución:
Estos son marcos para diferentes capas.
-
JSF es para la capa de visualización (web), es un marco orientado a componentes (cada parte de una página es un componente, tiene un estado) como Wicket o Tapestry, y a diferencia de marcos de acción como Spring MVC, Struts o Stripes
Libros: Core JavaServer Faces (3.ª edición)
Tutoriales: CoreServlets.com -
EJB 3.x es un contenedor que forma parte de la pila JavaEE. Hace cosas como la inyección de dependencia y la gestión del ciclo de vida de los beans. Por lo general, necesita un servidor de aplicaciones JavaEE completo para EJB3
-
Primavera también es un contenedor, pero Spring puede ejecutarse en cualquier código Java (una clase principal simple, un subprograma, una aplicación web o una aplicación empresarial JavaEE). Spring puede hacer casi todo lo que EJB puede hacer y mucho más, pero diría que es más famoso por la inyección de dependencia y la gestión de transacciones no intrusivas.
Referencia en línea (excelente)
Libros: no pude encontrar un buen libro en inglés sobre Spring 3.x, aunque hay varios en preparación -
Hibernar fue el primer gran ORM (mapeador relacional de objetos) en la plataforma Java y, como tal, ha inspirado en gran medida JPA (que es parte del estándar EJB3 pero se puede usar sin un contenedor EJB). Sugeriría codificar contra JPA y solo usar hibernate como proveedor, de esa manera puede cambiar fácilmente a EclipseLink, etc.
Libros: Pro JPA 2: Dominar la API de persistencia de Java™ (no específica de hibernación),
Persistencia de Java con Hibernate (envejeciendo un poco)
- JSF: un marco GUI: no necesita esto si solo desea implementar un backend
- EJB: un estándar para componentes distribuidos, solía ser terriblemente complejo, pero la versión 3 del estándar es bastante fácil de usar. Esto podría ser parte de su solución.
- Hibernate: un marco de mapeo relacional de objetos. Sirvió como inspiración para el estándar JPA (Arquitectura de persistencia de Java), que ahora es compatible tanto con Hibernate como con EJB.
- Spring: un marco de aplicación que hace todo tipo de cosas, entre ellas inyección de dependencia, GUI web y AOP.
Sin embargo, si desea hacer REST, entonces el estándar más importante para usted es JAX-RS. Puede usarlo dentro del marco Spring o con EJB. Para la persistencia, puede usar Hibernate o la implementación JPA de un contenedor EJB como Glassfish
EJB es un Enterprise Java Bean; consulte el enlace para obtener una descripción, pero básicamente es la forma Java “predeterminada” de escribir una aplicación empresarial.
Hibernar es un Marco ORM; una forma de mapear los Objetos/Clases en su aplicación a las tablas de la base de datos. Está relacionado con la forma en que persiste sus datos en una base de datos.
Spring es un contenedor de IoC/Inyección de Dependencia que proporciona muchas abstracciones útiles y bien probadas para hacer su vida más fácil. Spring es algo así como su propio marco de aplicación.
JSF es Java Server Faces, una tecnología de vista para aplicaciones web Java.
Usaría EJB O Spring. Podría usar Hibernate como su implementación de persistencia, si quisiera, con cualquiera de los dos; usted no necesita hacer esto. Para los servicios web RESTFul, realmente no necesita JSF.
La gente está muy contenta con Spring. Recomiendo usar eso…