¿Qué marco de desarrollo web Java debo usar para un nuevo proyecto?

Los marcos web Java son abundantes y hay uno para cada estilo de programación, por lo que es realmente una cuestión de gustos al final del día. Después de probar muchas opciones, me decidí por un patrón que realmente me gusta: usar Jersey (JAX-RS) con un marco de plantillas de su elección (personalmente me gusta Handlebars jknack / handlebars.java pero hay otras excelentes opciones). Mi recomendación puede ser poco convencional, ya que Jersey no suele agruparse con marcos web como Play o Spring Web MVC (ambas excelentes opciones también), pero de alguna manera Jersey es EL marco web. Le da control sobre los detalles de HTTP de bajo nivel cuando lo necesita (por ejemplo, cuando necesita “optimización avanzada”) y se mantiene fuera de su camino cuando no lo necesita.

La mejor razón para aprender Jersey sobre otros marcos web es que el conocimiento que obtienes al aprender Jersey tiene mucha más transferencia a otras áreas de desarrollo web: aprender Jersey es esencialmente aprender HTTP con una pequeña cantidad de Java cruft. El conocimiento de HTTP que obtenga será útil más adelante en su carrera, incluso si abandona Jersey. No se puede decir lo mismo de la mayoría de los otros marcos web Java, que a menudo crean abstracciones patentadas en un intento de facilitar el desarrollo web. A menudo, estas abstracciones hacen que los casos comunes sean más fáciles, pero puede encontrarse luchando contra esas abstracciones cuando tiene un caso de uso que el marco no satisface o le gustaría hacer las cosas de manera ligeramente diferente de lo que los escritores del marco habían imaginado.

Si usa Jersey para producir páginas web, necesitará un marco de plantillas. ¿Por qué manillares? Porque no tiene lógica y se puede usar tanto en el lado del cliente (Templado mínimo en esteroides) como en el lado del servidor (jknack / handlebars.java).

Jersey fomenta las buenas prácticas de desarrollo web como el diseño RESTful y la apatridia. Además, si bien todos los marcos web Java tienen cierto nivel de bloqueo (el código escrito en sus API no se puede portar fácilmente a otros marcos web si / cuando decide cambiar), diría que Jersey tiene menos bloqueo que los otros que tengo intentó.

Para sus requisitos específicos, Tapestry (Apache Tapestry Home Page) parece una buena opción.

Play Framework también es una opción, pero en mi opinión, su motor de plantillas es demasiado liberal (permite el abuso de código aleatorio, al igual que JSP). La respuesta de Chris Hansen plantea el mismo punto.

Puedes probar el marco Play. Es bastante bueno.

La primavera podría ser una buena elección

Primavera