2011-01-24 12 views
7

Spring MVCの専門家にとっておそらく疑問な質問ですが、どのようにしてそれがうまく動作するのか分かりません。Spring MVCとGuiceを統合することは可能ですか?

同じ質問に対する別の言葉:Spring MVC内のSpring DIに依存することはありますか?

+0

あなたは[グーグル-sitebricks](http://code.google.com/p/google-sitebricks/)を見て撮影したことがありますか? – ColinD

答えて

7

IOCコンテナなしでSpring MVCを使用することはできません。

たとえば、Spring MVCの中心にはDispatcherServletがあります。 DispatcherServletの は、これらのメソッドを使用して自身を初期化:

/** 
* This implementation calls {@link #initStrategies}. 
*/ 
@Override 
protected void onRefresh(ApplicationContext context) { 
    initStrategies(context); 
} 

/** 
* Initialize the strategy objects that this servlet uses. 
* <p>May be overridden in subclasses in order to initialize 
    * further strategy objects. 
*/ 
protected void initStrategies(ApplicationContext context) { 
    initMultipartResolver(context); 
    initLocaleResolver(context); 
    initThemeResolver(context); 
    initHandlerMappings(context); 
    initHandlerAdapters(context); 
    initHandlerExceptionResolvers(context); 
    initRequestToViewNameTranslator(context); 
    initViewResolvers(context); 
} 

だから、あなたが見ることができ、すべてがしっかりApplicationContextインターフェースに統合されています。

だから、唯一のチャンスはApplicationContextのGuice実装を持つことです。これは非常に遠いものです。

3

Spring IOCコンテナを使用せずに、より基本的なSpring MVC機能を使用することは可能です。これは結局のところ、IoC全体のポイントです。

多くのSpring MVCコンポーネントはGuiceが知りませんが、Spring独自のライフサイクルコールバック(例:InitializingBeanDisposableBean)を使用しているため、これは難しいでしょう。あなたはそれらを自分で処理しなければならないでしょう。

なぜより良い質問がありますかあなたはこれをやりたいですか? Spring IoCを使用しないと、Spring MVCはその魅力の大部分を失います。なぜ私はあなたが他のものなしで1つを使いたいと思うのか分かりません。

+0

私は雲の中でSpringを使う余裕がありません。新しいインスタンスを起動するには時間がかかります。フロントエンド開発にはMVCが必要です。もう一つのオプションは、Struts、Stripes、そして私自身の単純なMVCの実装です。 – Roman

+0

Struts2はGuiceとうまく統合されています。私はStripesについても良いことを聞いたことがあります(Guiceとどのように統合されているかわかりません)。 –

関連する問題