Javascript 单页应用程序(SPA)与全堆栈应用程序。限制和优势。
目前,我正在将我们的web应用程序从传统的Spring MVC web应用程序升级为带有REST端点的单页应用程序。我们当前的前端MVC应用程序不使用REST调用与后端通信,而是通过直接调用必要的facades与后端通信(用JAVA编写)。JAR文件和WAR文件都打包在一个ear文件中,并部署在我们的生产服务器上(目前使用JBoss EAP 6) 由于我们现在正转向单页应用程序,并用一组新的API升级我们的系统,我在问,单页应用程序和用JAVA编写的其余后端是否应该托管在同一台服务器上(JBoss EAP 6)?或者应该将它们拆分到单独的服务器上,一个用于服务SPA内容,另一个用于运行后端?在后一种情况下,哪个生产服务器最适合承载单页应用程序的内容(JS、HTML和CSS)?(我们的后端仍将托管在JBoss EAP 6上) 另外,在不同的服务器上分离前端和后端有什么好处 我试图搜索使用JavaREST端点部署单页应用程序的最佳实践,但没有找到任何适合我们需要的有用文章Javascript 单页应用程序(SPA)与全堆栈应用程序。限制和优势。,javascript,java,rest,jboss,single-page-application,Javascript,Java,Rest,Jboss,Single Page Application,目前,我正在将我们的web应用程序从传统的Spring MVC web应用程序升级为带有REST端点的单页应用程序。我们当前的前端MVC应用程序不使用REST调用与后端通信,而是通过直接调用必要的facades与后端通信(用JAVA编写)。JAR文件和WAR文件都打包在一个ear文件中,并部署在我们的生产服务器上(目前使用JBoss EAP 6) 由于我们现在正转向单页应用程序,并用一组新的API升级我们的系统,我在问,单页应用程序和用JAVA编写的其余后端是否应该托管在同一台服务器上(JBos
提前多谢!:) 要回答您的第一个问题:
- 是的,您完全可以将它们分开,理想情况下您应该这样做,这样您就可以部署前端而不依赖于web服务后端
- 您可以使用任何流行的web服务器(如Apache、Nginx)部署SPA静态文件,甚至可以在云主机(如S3)上部署(位于云前端CDN后面)
- 假设您的REST端点仍将使用Java,那么这些端点将需要驻留在Java应用服务器中,如jBOSS、tomcat或glass fish
- 您可以将JBOSS置于运行静态文件的相同Apache/Nginx反向代理之后
- 或者,如果您的域是独立的,则可以在web服务上启用CORS
- 最后,如果您的web服务是JSON,那么jsonp始终是一个选项
- 通常,当您使用像Spring这样的全栈web框架时,您会获得很多现成的安全性和身份验证。您可以使用会话和CSRF等来保护您的站点。但是,对于REST,您通常必须对前端使用基于令牌的身份验证才能使用REST服务。这不一定很难,但却是一种不同的方法,因此列在限制条件下李>
希望这有帮助,请让我知道,如果你需要更多的细节对任何提到的事情 这是品味的问题 我自己更喜欢使用生成器创建SPA,然后使用Spring IO自己的webservices设置(示例:)或Jersey创建服务 当涉及到部署时,有多个设置 Apache | Nginx | S3。下面是一篇关于部署AngularJS应用程序的精彩文章: 在Java部分,您可能仍然需要使用Tomcat、Glashfish或JBOSS等
这不仅仅是我选择的答案现在,前端主要托管在单独的服务器上,后端服务在云上,如AWS,在您的场景中,您可以用于前端(Html、CSS、JS、Angular),并且确保您可以使用单独的服务器进行后端服务,使用SpringMVC作为您当前的框架并将其作为restful服务也是可行的 看看这个