Me gustaría debatir un poco sobre la mejor forma de desarrollar un sitio web con java.
Actualmente yo uso JSF+PrimeFaces+Spring+Spring Security+Hibernate. Poco que explicar, Hibernate gestiona la base de datos, que se inyecta al controlador con Spring y controladores con Spring llamados desde JSF.
A mi modo de ver, aunque todo esto encaja muy bien (salvo el abuso de uso de controladores de sesion para que primefaces funcione bien), considero que hay demasiados eslabones en la cadena. Hibernate me da la impresión que abusa de la base de datos.
Me gustaría saber qué otras arquitecturas usáis/recomendáis.
Por ejemplo, si preferís IBatis, si creeis que Spring sobra y con JSF o Struts es suficiente...
También hay que mirar la facilidad de actualización. En mi caso, requiere eliminar el proyecto de Tomcat y desplegarlo nuevamente, para garantizar que el war se actualiza bien, ocasionando un downtime que no tiene otros lenguages como PHP, que no es necesario parar nada, solo sustituir el archivo.