Después de Struts?

sasher

Buenas,

En la carrera nos han introducido finalmente todo el tema de JSP usando Struts2 y la verdad es que me ha sorprendido la potencia y la facilidad que ofrece.

Veo hablar mucho sobre Spring e Hibernate, pero aun no me entero bien de como juntarlo todo con Struts (o es que no hace falta juntarlo?). Según tengo entendido Hibernate sirve para abstraer el uso de las bases de datos en las aplicaciones, convirtiendo el modelo relacional en un modelo orientado a objetos. De Spring sin embargo he leído que es una alternativa a Struts, pero aun así también he visto a gente que lo junta con Struts.

Podéis orientarme mas o menos sobre como seguir por este mundillo después de Struts? O esclarecerme la relación que existe entre estas tecnologías?

Un saludo y gracias!

bLero

#1

Lo primero decirte que te han enseñado una tecnología ya desfasada.

Struts 2 es un framework MVC para Java EE. Spring es otro framework, pero no sólo para MVC, sino que ofrece otro conjunto de servicios como inyección de dependencias (lo que le hizo famoso), autentificación, messaging, etc.

Hibernate por el contrario nos permite mapear objetos a bases de datos y utilizar un lenguaje de consultas basado en los objetos del modelo sustituyendo así los DAOs y consultas SQL a pelo. Esto permite evitar la duplicidad de modelos (objetos y datos) y además favorecer la portabilidad pues las consultas serán independientes del SGBD que utilicemos.

Los chicos de Java, como siempre, cada vez que se encuentran un framework decente, lo copian y después lo estandarizan, así pues, hoy en dia imperan:

  • JSF: en detrimento de Structs o el MVC de Spring
  • CDI: para la inyección de dependencias (copiado de Spring)
  • JPA: copia de hibernate
  • JPQL: copia de hql (hibernate query language)
  • Bean Validation
  • JMS
  • etc

Mi consejo es:

Si ya dominas Struts, Spring, Hibernate, etc. No tendrás mucho problema para pasarte al estándar porque prácticamente es un fork de esos framework.

La tendencia actual es que para los nuevos desarrollos se utilice el estándar, aunque si alguna vez te toca trabajar manteniendo aplicaciones es seguro que tocarás struts o spring, pues ahora mismo sobre el 70% de aplicaciones Java EE existentes deben basarse en alguno de estos frameworks. De hecho en mi curro aún estamos manteniendo aplicaciones con Struts 1 (que es puro amor comparándolo con JSF).

Si quieres leer algo sobre lo actual te recomiendo este libro:

  • Beginning Java EE 7 de Antonio Goncalves

Está en Inglés pero se entiende perfectamente si dominas medianamente el idioma.

1 1 respuesta
sasher

#2 Pues de hecho Hibernate y Spring es lo que me falta por mirarme, empezaré por ahí mejor, que aunque sean antiguas, si en algún puesto me lo piden quiero al menos poder defenderme.

Muchísimas gracias por el resumen, por cierto. Me apunto el libro para echarle un ojo mas adelante.

Usuarios habituales

  • sasher
  • bLero