tutorial start mvc form espaƱol docs desde cero java spring angular spring-boot thymeleaf

java - start - spring form docs



Elegir entre Thymeleaf y Angular para un nuevo proyecto de Spring MVC (2)

La elección no es si usar una biblioteca de JavaScript o Thymeleaf, eso sería una restricción artificial que creaste, ambos son animales diferentes. Thymeleaf es para plantillas, JQuery es una biblioteca del lado del cliente para crear páginas dinámicas. Tendría más sentido elegir entre bibliotecas de plantillas o entre bibliotecas de JavaScript, pero ambas pueden ir muy bien juntas.

En general, sus plantillas no deberían afectar su código JavaScript, algunas personas hacen plantillas de su código Javascript, pero en mi opinión esta es una idea terrible. En su lugar, utilice Templating para reemplazar los atributos de las etiquetas en HTML y Javascript para dinamizar su sitio web con la biblioteca que elija.

No estoy seguro de lo que quieres decir con

Aprobación del lado del cliente en lugar de una implementación del lado del servidor

Pero lo que veo hoy en día son 2 enfoques diferentes, creando la aplicación web Microservies VS Monolith. Si desarrolla su sitio web completamente en Thymeleaf, no lo hará muy reutilizable. Netflix, Amazon, Uber, etc., crean servicios (a veces llamados microservicios) que se reutilizan en toda la organización a través de una API REST.

Si solo tiene un sitio web implementado en Thymeleaf, no será posible que otra aplicación (think mobile) acceda a ningún servicio creado por su aplicación, mientras que si crea una API REST para su aplicación, puede seguir reutilizando el servidor. para cuando necesita hacer una aplicación móvil u otra aplicación web con requisitos similares.

Por supuesto, si sus servicios no se reutilizarán, esto podría no ser importante para usted y podría ser muy hábil para hacer las cosas de cierta manera, aunque no sea el más reutilizable, por supuesto, no siempre estamos creando el próximo Amazon. Pero sigo creyendo que es una buena idea seguir las mejores prácticas, aunque solo sea para mejorar las cosas de una manera determinada.

Estoy iniciando una nueva aplicación web Spring Boot y necesito hacer una elección sobre cómo implementar el front-end.

Me siento muy cómodo con el framework de plantillas Thymeleaf que usé en varios proyectos, pero estoy evaluando Angular (v2) como una posible alternativa.

Soy bastante nuevo en los marcos MVC lado del cliente y me gustaría entender si hay algunas pautas para decidir qué opción es la mejor para un proyecto web.

He leído muchas publicaciones y tutoriales sobre esto, pero todos parecen describir opiniones personales o simplemente son experimentos de codificación ...

  1. ¿Existen algunos requisitos de aplicación que sugieran objetivamente utilizar un enfoque del lado del cliente en lugar de una implementación del lado del servidor?

  2. ¿Es posible y efectivo usar ambas tecnologías juntas?


Thymeleaf y AngularJS no se excluyen mutuamente. Ciertamente, puedes usarlos juntos, dependiendo de lo que estés tratando de lograr. Si está escribiendo una aplicación web dinámica de una sola página, Thymeleaf probablemente no sea necesario.

En cuanto a su pregunta sobre los marcos del lado del cliente frente a los del lado del servidor, soy un Ingeniero de software empresarial, por lo que no estoy creando software comercial y mi prioridad es menos sobre lo bonito que se ve (un poco de Bootstrap hace el truco) y más sobre la estabilidad, la compatibilidad del navegador (incluso con navegadores antiguos) y la capacidad de mantenimiento. Personalmente evito las aplicaciones web dinámicas de una sola página porque encuentro que el código base es más difícil de administrar en aplicaciones no triviales; una base de código Javascript grande puede ser un oso, en mi opinión. La creación de mis páginas principalmente en el lado del servidor me brinda mejores capacidades de depuración (Java le brindará una gran cantidad de tiempo de compilación que no se obtiene con Javascript) y un registro más sencillo. Utilizo javascript (en su mayoría solo jQuery) en el lado del cliente, pero generalmente mis aplicaciones web están diseñadas para degradarse con gracia si el usuario tiene desactivado el javascript. Nuevamente, estas son aplicaciones internas, utilitarias, para apoyar el negocio. No tengo tiempo para escribir una tesis completa sobre el tema y hay muchos matices que no estoy cubriendo, pero espero que esto sea útil.

Si necesita que su aplicación web actúe más como una aplicación móvil o de escritorio, entonces una aplicación web dinámica de una sola página con un marco como AngularJS es una forma de proceder.