2016-04-10 1 views
0

私はマルチモジュールのMavenプロジェクトを持っています。モジュールの1つは、DAO、トランザクションサービス、一部の角型クライアント用のRESTコントローラ(Ionicフレームワーク)を持つSpringバックエンドです。
Webクライアント用に新しいWicketモジュールを追加する必要があります。このモジュールは最初のモジュールを依存関係として使います。 Wicketアプリケーションを起動すると、Springコンテキストは依存関係から開始され、RESTインタフェースはイオンクライアントで使用可能になります。私の問題は、Wicketアプリケーションを既存のSpringコンテキストに結びつけることができないことです。 Wicketは同じBeanで新しいSpringコンテキストを開始したいだけです。 春のコンテキストからいくつかの静的メソッドを使用してBeanにアクセスできますが、通常のWicket + Springアプリケーションのように@SpringBean注釈を使用します。 これには解決策がありますか? ありがとうございました!Wicketが既存のSpringコンテキストにアタッチする

答えて

0

私が正しく理解していれば、SpringバックエンドはJavaモジュールだけでなく、Webアプリケーションです。このWebアプリケーションを他のWebアプリケーション(あなたの新しいWicketモジュール)に依存させることはできません。 共有ビジネスロジックを新しいJavaモジュールで移動する必要があります。この新しいJavaモジュールは、2つのWebアプリケーション(SpringバックエンドとWicket)の依存関係になります。

他の解決策として、3つのWebアプリケーションがあります。春のファサード、目の前のファサード、春のバックエンド。 SpringファサードとWicketファサードは、ビジネスロジックを実行するためにSpringバックエンドにリクエストをリダイレクトする単純なREST Controllerに過ぎません。

1

Wicketは、指示しない限り、Springコンテキストを開始しません。フィルタinit-param "contextConfigLocation"を使用していますか?

あなたは自分のアプリケーション内で春インジェクタを登録すると、それはデフォルトの春のWebコンテキスト(それは春のWebApplicationContextUtils#getRequiredWebApplicationContextを(使用))拾う必要があります。また

getComponentInstantiationListeners().add(new SpringComponentInjector(this)); 
+0

をSpringComponentInjectorがApplicationContentインスタンスを受け入れるコンストラクタを持っています(https://github.com/apache/wicket/blob/686058119dd795b3de7f2016e3e64fb8f025f813/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java#L90)。したがって、サブコンテキストを渡すこともできます。 –

+0

私はこれが私が必要としていると思う、コンストラクタはパラメータとしてコンテキストを持っています。デフォルトのものは見つからない。ありがとう –

関連する問題