2016-05-27 12 views
0

Vor kurzem habe ich hier gefragt, ob es eine gute Praxis ist, npm zu init zu installieren und node_modules innerhalb des webapp-Pakets innerhalb von Java Project zu installieren, weil ich das Jeyrsey RESTful-API-Framework als Backend und Angular2 für das Frontend verwenden wollte. Ich habe keine Ahnung, wie ich dem beitreten könnte, und mir wurde klar, dass die Installation von ANgular2 mit npm im webapp-Paket funktionieren würde - und es funktioniert.Java + Angular2 = Zwei Projekte als ein Projekt bereitgestellt. Wie?

Aber ... meine Projektstruktur wie folgt aussieht:

PROJECT 
--src 
    --main 
    --Java <-- all Jersey API staff etc. 
    --webapp <-- all frontend staff with Angular2 
     --node_modules 
     --bower_components 
     --index.html 
     --... 

ich zwei Antworten bekam und zwei das gleiche gesagt - eine bessere Option ist zwei separate Projekte zu erstellen: eine für Frontend und zweite für Backend. Okay - das hört sich interessant an, aber wie kann man sie genau zusammenführen, den Anfragen beitreten usw.? Für Java benutze ich Jetty, für Frontend könnte ich node.js verwenden, was nun? Welche Technologie sollte ich verwenden, um diese beiden Projekte an zwei verschiedenen Ports zu verbinden?

Bin ich irgendwo falsch? Können Sie mir die besten Technologien, einige Ratschläge geben? Danke für Ihre Hilfe.

Antwort

0
  1. Ich würde eine Krieg-Datei erstellen und es an der Anlegestelle bereitstellen. Sie haben bereits einen wirklich schnellen Webserver, Sie sollten die Dinge nicht komplizierter machen, indem Sie die Notwendigkeit eines Reverse-Proxy oder CORS-Headers schaffen.

  2. Ein anderer Weg wäre, starten Sie zwei Server Jetty und node.js, starten Sie einen Reverse Proxy, der Ihr Backend auf das eine und Ihr Frontend auf den anderen Server abbilden könnte.

  3. Die dritte würde CORS-Header hinzufügen. In diesem Fall würde Ihr Frontend an einem Port und das Backend an einem anderen laufen.

Ich würde den ersten Weg verwenden. Es kann ein guter Ansatz sein, einen maven buildplugin zu verwenden, der Ihren Frontend-Build mit Grunt startet. In diesem Fall können Sie alles mit einer Baukette in einem einzigen Projekt erstellen. Die Bereitstellung wäre einfach (eine einzige Kriegsdatei).