【问题标题】:Java + Angular2 = Two projects deployed as one. How?Java + Angular2 = 两个项目部署为一个。如何?
【发布时间】:2016-09-26 01:45:20
【问题描述】:

最近我在这里询问是否在 Java 项目的 webapp 包中初始化 npm 并安装 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,现在怎么办?我应该使用哪种技术来加入这两个在两个不同端口上工作的项目。

我是不是哪里错了?你能给我最好的技术,一些建议。感谢您的帮助。

【问题讨论】:

    标签: java node.js angular frontend backend


    【解决方案1】:
    1. 我会创建一个战争文件并将其部署到码头。您已经拥有了一个真正快速的网络服务器,您不应该通过创建反向代理或 CORS 标头来使事情变得更复杂。

    2. 另一种方法是,启动两个服务器 jetty 和 node.js,启动一个反向代理,它可以将您的后端映射到一个服务器,并将您的前端映射到另一个服务器。

    3. 第三个是添加 CORS 标头。在这种情况下,您的前端将在一个端口上运行,而后端将在另一个端口上运行。

    我会使用第一种方式。使用maven buildplugin 可能是个不错的方法,它将使用 grunt 启动您的前端构建。在这种情况下,您可以在一个项目中使用一个构建链构建所有内容。部署将很容易(一个单一的战争文件)。

    【讨论】:

      猜你喜欢
      • 2019-01-27
      • 2014-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多