0

コンテナーが埋め込まれた Spring IO jar は、UI として AngularJS を使用するグローブのように適合します。jar ベースの spring io プロジェクト (つまり、angularjs またはその他の javascript ライブラリを使用した .html ページ) を使用して、静的リソースを簡単に攻撃できます。

angular ベースのフロント エンドには、SpringIO Web が最適です。

ただし、maven によってビルドされた GWT と連携するために SpringIO を (WAR ではなく) jar としてパッケージ化するというトピックでは、問題はそれほど簡単には解決できないようです。

これまでのところ、このトピックに関する唯一の関連する回答は次のとおりです。 Spring Boot + GWT 組み込み構成

実際、GWT アプリケーションを springIO jar (生産的な jar) にビルドする必要がある場合は、GWT javascript が適切な META-INF/resources に分類され、サーバーに提供されることを確認するだけで済みます。クライアント。

ただし、開発時に Java から Javascript へのコンパイルがまだ行われておらず、従来の gwt:run プラグインが使用されている場合、次のように pom.xml を適切にセットアップする方法について公式の回答を得ることは興味深いでしょう。

(a) 選択した埋め込みコンテナー tomcat または jetty を使用します。

(b) 開発時に、springio devtools を使用してコンテナーを再起動する利点があります。これは、javascript リソースが restar なしですぐに更新され、クラスの変更が再起動につながる Spring x Angular ベースのプログラムの魅力のように機能します。

(c) 完全なモンスターをコンパイルしなくても GWT アプリケーションをデバッグできる

私は疑問に思っています: GWT と Spring IO を同時に使用して生産的に開発できる唯一の方法は、次のように述べることです: - 2 つのコンテナーが必要です。GWT 部分を実行し、javascript を提供し、フロント ent をデバッグするためのフロント エンド桟橋。

私はjavascriptを持っていませんが、Springboot開発ツールを生産的に取得してTomcatの再起動をクラス変更することができるSpring IOのバックエンドアプリケーション。

そして桟橋と組み込みの tomcat の間で、単純な REST ベースの Web サービスを使用して 2 つの JVM コンテナーを統合します。両方が同じローカルホスト上にある場合、ネットワーク コストは本質的に冗長です。しかし、生産的に開発するには、GWT JavaScript を含む別のコンテナーと、SpringIO ビジネス ロジックを含むコンテナーが必要になる場合、完璧な世界ではありません。

GWT と SpringIO の両方を使用して生産的に連携できるように、springio が GWT maven pom.xml を提供することは可能でしょうか?

私の側では、デモンストレーションする git プロジェクトが既に存在する SpringIO WAr アプローチが好きではないと言わざるを得ません。

コンテナが埋め込まれた JAR SpringIO JAR をセットアップして生産的な開発環境を構築できない場合、私は単純に、GWT fornt-end 用の最も効果的な開発 pom.xml と springio バックエンドの busienss ロジックを含む 2 つのコンテナを選択します。これについての返信に感謝します。

4

3 に答える 3

2

SuperDevMode コードサーバーはスタンドアロン アプリケーションとして簡単に実行でき、GWT コードを変更すると再コンパイルされます (基本的に、Spring Boot とコードサーバーの 2 つのコンテナーになります)。Spring Boot がその静的 Web リソースを検索する場所に
を指定した場合は、ページを更新して再コンパイルするだけで済みます。launchDirそれ以外の場合は、いつでも boormarklet を使用して手動で再コンパイルを開始できます。

Thomas Broyer の gwt -maven-pluginを使用することをお勧めします

于 2016-01-09T10:12:10.230 に答える
0

私が働いている会社では、GWT に基づく SmartGWT フレームワークを使用しています。このフレームワークを使用すると、Spring をプロジェクトに簡単に統合でき、SuperDevMode でプロジェクトを簡単にデバッグ/実行できます。

于 2016-01-09T10:33:53.270 に答える
0

概念実証は次のとおりです。

手順 (1) gwt 2.7 Web アプリ クリエーターを使用して、適切な pom でサンプル gwt プロジェクトを生成します。この場合、 gwt:run を実行すると、変更時にクライアント コードが更新されるのを見る限り、既に問題のない開発環境が得られます。悪くはないが十分ではない。

ステップ (2) は、Spring Boot 開発ツールのサーバー側の更新の概念実証として、保守的に行って、jetty プラグインを pom に追加するだけです。jetty プラグインは、jetty を使用しているにもかかわらず、GWT プラグインにはない JRebel のような構成オプションを提供します。GWT プラグインではクラスパスのスキャン間隔を表現できませんが、jetty では表現できます。

 <plugin>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-maven-plugin</artifactId>
      <version>9.3.0.v20150612</version>
      <configuration>
          <scanIntervalSeconds>10</scanIntervalSeconds>
          <webApp>
              <contextPath>/</contextPath>
          </webApp>
      </configuration>
  </plugin>

ステップ (3) Umit で示唆されているように、開発時に組み込みコンテナーで gwt を実行する必要はありません。代わりに、 mvn war:exploded mvn jetty:run-exploded mvn gwt:gwt-codeserver のような形式で同じように生産的に作業できます。

UI でコードの変更を更新するには、コード サーバーのブックマークを使用して再コンパイルをトリガーできるため、これはむしろ理想的です。また、サーバー側のコア jrebel の動作については、コードが変更されたときに単に mvn exposed:war を実行するか、mvn build 出力ディレクトリを修正して WEB-INF/classes に移動します ... とにかく、jetty はファイルの変更をピックアップして Web アプリを再起動しますクラスローダーをすばやく。

同じ原則がSpringbootでも機能する必要があります...

そして確かにそうです。

GWT+SpringBoot を JAR として使用する場合の秘訣は 2 つあります。

(a) 独自の jetty:run-exploded を gwt:run 埋め込み式桟橋の代わりに使用する場合と同様。gwt プラグインを調整する必要があります

<noServer>true</noServer>

(b) gwt プラグインは、APP を war としてパッケージ化することを想定していますが、そうではありません。したがって、springboot アプリが nocache.js ファイルを提供することを確認するには、次の形式で gwt プラグインを調整する必要があります。

<webappDirectory>${project.build.directory}/classes/META-INF/resources</webappDirectory>

上記の行は好みの問題です。Spring Boot は、静的リソース用にいくつかのフォルダーをサポートしています。JEE アプリの JSF コンポーネント jar ファイル内に 4 つの JSF ライブラリをダンプするのと同じフォルダーを使用するだけです。

いずれにせよ、springboot と gwt のプラグインがうまく連携していないことは明らかですが、両方の maven プラグインを組み合わせると、開発中に適切に機能させるのに十分な構成オプションが得られます。

プロダクション モードに関しては、それが機能することは明らかです。最終的な jar を組み立てる前に、リソースを適切なフォルダーにパッケージ化するだけです。

最終的に、springboot + gwt は正常に動作し、UI ソースのリロードとバックエンドの高速クラスのリロードが行われ、eclipse に合わせたプラグインの処理を強制されることなく、maven がすべてを適切に処理します。Netbeans に最適です。

于 2016-01-13T21:16:50.950 に答える