Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为新的Spring MVC项目在Thymeleaf和Angular之间进行选择_Java_Spring_Angular_Spring Boot_Thymeleaf - Fatal编程技术网

Java 为新的Spring MVC项目在Thymeleaf和Angular之间进行选择

Java 为新的Spring MVC项目在Thymeleaf和Angular之间进行选择,java,spring,angular,spring-boot,thymeleaf,Java,Spring,Angular,Spring Boot,Thymeleaf,我正在启动一个新的web应用程序,我需要选择如何实现前端 我对我在几个项目中使用的模板框架非常满意,但我正在评估作为一种可能的替代方案 我对客户端框架非常陌生,我想了解一下是否有一些准则来决定哪种选项最适合web项目 我读过很多关于这方面的帖子和教程,但它们似乎都描述了个人观点,或者只是编写了一些实验 是否有一些应用程序需求客观上建议使用客户端方法而不是服务器端实现 将这两种技术结合使用是否可能且有效 选择不是使用一个JavaScript库还是Thymeleaf,这将是您创建的人工约束,它们都是

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

我对我在几个项目中使用的模板框架非常满意,但我正在评估作为一种可能的替代方案

我对客户端框架非常陌生,我想了解一下是否有一些准则来决定哪种选项最适合web项目

我读过很多关于这方面的帖子和教程,但它们似乎都描述了个人观点,或者只是编写了一些实验

  • 是否有一些应用程序需求客观上建议使用客户端方法而不是服务器端实现

  • 将这两种技术结合使用是否可能且有效


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

    一般来说,你的模板不应该影响你的JavaScript代码,有些人确实会模板化他们的JavaScript代码,但依我看,这是一个糟糕的想法。取而代之的是使用模板来替换HTML中的标记属性,并使用Javascript使您的网站在您选择的任何库中都是动态的

    我不知道你说的是什么意思

    客户端方法而不是服务器端实现

    但我现在看到的是两种不同的方法,创建微服务和单一web应用程序。如果你完全用Thymeleaf开发你的网站,你将无法使它具有很好的可重用性。Netflix、Amazon、Uber等都创建服务(有时称为微服务),这些服务通过REST API在整个组织中重用

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


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

    Thymeleaf和AngularJS并不是相互排斥的。您当然可以将它们结合使用,这取决于您要完成的任务。如果您都在编写单页动态web应用程序,那么Thymeleaf可能是不必要的

    说到你关于客户端框架和服务器端框架的问题,我是一名企业软件工程师,所以我不是在创建商业软件,我的重点不是它看起来有多漂亮(使用一点引导就可以了),而是稳定性、浏览器兼容性(即使使用较旧的浏览器)和可维护性。我个人避免使用单页、动态的web应用程序,因为我发现在非平凡的应用程序中,代码库更难管理;在我看来,一个庞大的Javascript代码库可能是一个负担。主要在服务器端构建页面为我提供了更好的调试功能(Java将为您提供许多Javascript无法获得的编译时帮助)和更轻松的日志记录。我确实在客户端使用javascript(主要是jquery),但通常情况下,如果用户关闭了javascript,我的web应用程序会优雅地降级。同样,这些都是支持业务的内部实用应用程序。我没有时间就这个主题写一篇完整的论文,还有很多细微差别我没有涉及,但希望这是有用的


    如果你需要你的web应用程序更像一个移动或桌面应用程序,那么使用AngularJS这样的框架的单页动态web应用程序就是一种方法。

    将两者结合使用是可能的,我已经在一些项目中这样做了:)至于这是否是一种好的做法,我真的不能告诉你,尽管如此,你可以同时使用两者。我认为这是最好的解决方案,如果你想使用有角度的弹簧。谢谢你们。我仍在试图理解,使用这两个框架或仅仅选择其中一个框架是否有意义。但我也想深入了解两者的真正优势是什么,以便做出正确的选择。请留下评论供否决投票。谢谢。你可以让使用rest服务和使用微服务架构的thymeleaf……在选择前端框架/模板时,微服务或monolith并不重要。我认为他指的不是角度JS@AnnaKlein,你是对的,他们现在称它为Angular,但它仍然是同一个动物,一个前端Javascript框架。我不完全同意下面的答案。最重要的区别是后端服务的可重用性。当您使用thymeleaf时,您将字符串片段/页面返回到客户端,而如果您使用angular,您可以将对象(json响应)返回到客户端,以便不同的客户端(web、移动等)可以使用。当然,你可以同时使用它们。