在Thymeleaf和Angular之间选择一个新的Spring MVC项目

dav*_*ooh 32 java spring thymeleaf spring-boot angular

我正在启动一个新的Spring Boot Web应用程序,我需要选择如何实现前端.

我对几个项目中使用的Thymeleaf模板框架感到很满意,但我正在评估Angular(v2)作为一种可能的选择.

我对客户端MVC框架很陌生,我想了解是否有一些指导方针来决定哪个选项最适合Web项目.

我已经阅读了很多关于此的帖子和教程,但它们似乎都描述了个人观点或仅仅是编码实验......

  1. 是否有一些应用程序要求客观地建议使用客户端方法而不是服务器端实现?

  2. 将这两种技术结合使用是否可行且有效?

Eri*_*son 43

Thymeleaf和AngularJS并不相互排斥.您当然可以将它们一起使用,具体取决于您要完成的任务.如果您正在编写单页动态Web应用程序,那么Thymeleaf可能是不必要的.

谈到你关于客户端框架与服务器端框架的问题,我是一名企业软件工程师,所以我不是在创建商业软件,而是我的优先级不是关于它看起来多么漂亮(一点Bootstrap可以做到这一点)等等关于稳定性,浏览器兼容性(即使是旧浏览器)和可维护性.我个人避免单页,动态Web应用程序,因为我发现代码库在非平凡的应用程序中更难管理; 在我看来,一个庞大的Javascript代码库可能是一个熊.主要在服务器端构建我的页面为我提供了更好的调试功能(Java将为您提供大量编译时帮助,而不是Javascript)和更容易的日志记录.我在客户端使用javascript(主要是jquery),但一般来说,如果用户关闭javascript,我的网页应用程序会优雅地降级.同样,这些是支持业务的内部,实用的应用程序.我没有时间撰写关于这个主题的整篇论文,并且我没有涉及很多细微差别,但希望这很有用.

如果您需要Web应用程序更像移动或桌面应用程序,那么使用AngularJS等框架的单页动态Web应用程序是一种方法.

  • @AnnaKlein,你是对的,他们现在只是称它为 Angular,但它仍然是同一个动物,一个前端 Javascript 框架。 (3认同)
  • 我不认为他指的是 Angular JS (2认同)

Sni*_*192 14

选择不是使用一个JavaScript库还是Thymeleaf,这将是您创建的人为约束,它们都是不同的动物.Thymeleaf用于模板化,JQuery是用于制作动态页面的客户端库.在模板库之间进行选择或在JavaScript库之间进行选择会更有意义,但两者可以很好地结合在一起.

一般来说,你的模板不应该影响你的JavaScript代码,有些人会模板化他们的Javascript代码,但恕我直言这是一个可怕的想法.而是使用Templating来替换HTML中的标记属性,使用Javascript来使用您选择的任何库来使您的网站动态化.

我不确定你的意思

客户端批准而不是服务器端实现

但我现在看到的是两种不同的方法,创建Microservies VS Monolith Web应用程序.如果您完全在Thymeleaf开发您的网站,您将无法使其重复使用.Netflix,亚马逊,优步等都创建了服务(有时称为微服务),这些服务通过REST API在整个组织中重用.

如果你只有一个在Thymeleaf中实现的网站,那么另一个应用程序(想想移动设备)将无法访问你的应用程序创建的任何服务,而如果你为你的应用程序创建一个REST API,那么你可以继续重用你的服务器后端当您需要制作移动应用程序或具有类似要求的其他Web应用程序时.

当然,如果您的服务不会被重复使用,这对您来说可能并不重要,您可能非常精通以某种方式做事,尽管不是最可重用的,当然我们并不总是创建下一个亚马逊.但我仍然认为遵循最佳实践是个好​​主意,即使只是为了更好地以某种方式做事.

  • 您可以让百里香使用休息服务并使用微服务架构... (3认同)
  • 选择前端框架/模板时,微服务或整体并不重要。 (2认同)