GWTサーブレットで単にフィールドを@Autowired
とマークしても、意図した通りに動作しません。コードがコンパイルされ、Webアプリケーションが起動します。つまり、Springがフィールドをautowireできるようになりましたが、サーブレットが実際にクライアント側のコードでヒットした場合、NullPointerException
が返されます。サーブレットがヒットします。SpringでGWTサーブレットのフィールドをオートワイヤリングするだけの理由はありませんか?
私はいくつかのSpringロジックを実行する基本サーブレットクラスを使用していますが、これはすべてのGWTサーブレットがこの基本クラスを拡張する必要があることを意味します。もう1つの方法は、AspectJとSpringアノテーションを使用することでした。ここにはほとんど設定が含まれておらず、魔法のように動作しました。
私の質問は、単にフィールドをオートワイヤリングするだけで、意図したとおりに動作しないのですか?これが壊れる原因となるGWTは何ですか?
、あなたの答えは、春の最初の部分では技術的に正しいですが、デフォルトでは、お菓子Autowired必要なので、それが構築されているかどうかを確認しますとして注釈フィールド/メソッド注釈付きアイテムに一致するBean。もしそうでなければ、それは爆発し、ウェブコンテナは起動しません。 – icfantv
さらに、答えの2番目の部分では、Web上でこの解決策を見ましたが、注意点は、1)私のGWTサーブレットクラスをすべて拡張するために、親サーブレットクラスを作成する必要があります。 、2)このパターンは例外処理を混乱させ、例外がスローされたときの適切な処理を妨げます。 http://blog.maxmatveev.com/2011/02/simple-spring-bean-autowiring-in-gwt.htmlの著者のコメントを参照してください。これはAspectJを使用するソリューションです。 – icfantv
基本クラスを作るために*必要ない*各サーブレットは自身のためにinit()をオーバーライドすることができます:) – milan