Vaadin Framework で Spring MVC を使用する可能性について考えています。それらをうまく一緒にプレイさせる文書化された方法はありますか? また、併用してもよろしいでしょうか?パフォーマンスに関連する; 専用サーバーでアプリを実行します。
私の質問をもう少し明確にするために、Vaadin を使用してレンダリングし、すべてのモデル データにアクセスできる Spring MVC コントローラーからモデルとビューを返すにはどうすればよいですか。
Vaadin Framework で Spring MVC を使用する可能性について考えています。それらをうまく一緒にプレイさせる文書化された方法はありますか? また、併用してもよろしいでしょうか?パフォーマンスに関連する; 専用サーバーでアプリを実行します。
私の質問をもう少し明確にするために、Vaadin を使用してレンダリングし、すべてのモデル データにアクセスできる Spring MVC コントローラーからモデルとビューを返すにはどうすればよいですか。
Vaadin の Spring サポートは非常に新しいものですが、最近フォーラムで多くの話題があり、テストした人もいます。うまくいくようです。Vaadin wiki にはそれに関する記事があり、フォーラムには Vaadin + Spring の統合について話しているスレッドがいくつかあります。
Wiki: Spring Integration
フォーラム: Mill ツールキットを Spring アプリケーションと統合できますか
フォーラム: Spring 統合の問題
フォーラム: Spring の
操作 フォーラム: Spring Integration
vaadinをSpringMVCと統合することが賢明な選択であるかどうかはわかりません。その無駄。MVCは、典型的なページベースのWebアプリを対象としていますが、vaadinはデスクトップアプリのようにビューステートベースです。私は通常、途中で会議を行い、春にビジネス層とデータアクセス層を持ち、Vaadinをそのまま使用します。
サンプル WAR アプリケーションを含む私のソリューションについては、Vaadin フォーラムのこのスレッドを参照してください。AutowiringApplicationServlet
dhrboに同意しました。
spring mvc を使用するのは賢明ではありません。vaadin は、別の Web アプリ フレームワークです。
vaadin プロジェクトで「spring mvc」のアイデアが必要な場合は、それを spring-core、Bean、およびコンテキストと統合します。そうすれば、コントローラー、UI (vaadin)、およびモデル (hibernate / orms と統合) を明確に分離できます。
Here's an article on integrating Spring service layer with Vaadin. It does not directly relate to Spring MVC that the original question was about, but it can still be a pointer for other readers researching Vaadin Spring integration.
http://psponcoding.blogspot.com/2011/03/vaadin-spring-integration.html
org.springframework.web.servlet.mvc.Controller
の handleRequest はパラメータとしてHttpServletRequest
andHttpServletResponse
を取ります。これらから、URI フラグメントを処理することはできません。そのため、コントローラは URI フラグメントに基づくリクエストの制御には適していません。
私のアプリケーションでは、Spring コントローラーと非常によく似た概念を実装しました。私のアプリケーションにはまだ「ビュー」と「モデル」の概念があります。各ビューは個別のクラスに実装され、ページの中央ブロックに表示されます。URL 処理のロジックをそのクラスに集中させたかったので、クラスを作成しましたAbstractControllerEntry
。
public static abstract class AbstractControllerEntry {
public abstract boolean matches(String fragment);
public abstract void open(MainWindow window, String fragment);
}
ConstantEntry
、 、などの便利なサブクラスがいくつかPrefixEntry
ありRegexEntry
ます。
各ビュー クラスには、 を返す静的メソッドがありますAbstractControllerEntry
。すべてのエントリのコレクションは、クラス内の静的配列に保持されますMyController
(Spring MVC コントローラーではありません)。フラグメントが変更されると ( UriFragmentUtilityを参照)、すべてのエントリを反復処理し、最初に一致するエントリに対して open を呼び出します。モデル オブジェクトの検索などのその他のロジックは、ビュー クラス内のAbstractControllerEntry
実装にあります。
さらに、ビューへの各参照がクラスへの実際の参照になるように、ビュー クラスで URI フラグメントを生成する別の静的メソッドがあります。これはリンク切れの解決策です。また、各ビューには、現在のビューのフラグメントを取得するためのインスタンス メソッドがあり、堅牢性を高めるためにコントローラー エントリと一致するかどうかがチェックされます。