最近我在这里问到,在Java Project中初始化npm并在webapp包中安装node_modules是一个好习惯,因为我想使用Jeyrsey RESTful API框架作为后端,使用Angular2作为前端。我还没有想过如何加入,所以我意识到在webapp包中使用npm安装ANgular2会起作用 - 而且它可以工作。
但是......我的项目结构如下:
PROJECT
--src
--main
--Java <-- all Jersey API staff etc.
--webapp <-- all frontend staff with Angular2
--node_modules
--bower_components
--index.html
--...
我有两个答案,两个说同样的 - 更好的选择是创建两个单独的项目:一个用于前端,第二个用于后端。好的 - 这听起来很有趣,但如何将它们完全一起运行,加入请求等?对于Java我使用jetty,对于前端我可以使用node.js,现在呢?我应该使用哪种技术来加入在两个不同端口上工作的这两个项目。
我错了吗?你能给我最好的技术,一些建议吗?谢谢你的帮助。
答案 0 :(得分:0)
我会创建一个war文件并将其部署到jetty。您已经拥有一个真正快速的Web服务器,您不应该通过创建需要反向代理或CORS标头来使事情变得更复杂。
另一种方法是,启动两个服务器jetty和node.js,启动一个反向代理,它可以将你的后端映射到另一个服务器,并将你的前端映射到另一个服务器。
第三个是添加CORS标头。在这种情况下,您的前端将在一个端口运行,后端在另一个端口运行。
我会用第一种方式。使用Firebase quickstart for Android可能是一个很好的方法,它会用grunt开始你的前端构建。在这种情况下,您可以在一个项目中使用一个构建链构建所有内容。部署很简单(单个war-file)。