簡體   English   中英

是否可以將Spring MVC與Guice集成?

[英]Is it possible to integrate Spring MVC with Guice?

對於Spring MVC的專家來說,這可能是一個愚蠢的問題,但我不知道它是如何在引擎蓋下工作的,這就是我問的原因。

針對同一問題的另一個措辭:Spring MVC中是否存在對Spring DI的依賴?

我很確定沒有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實現,我想這將是非常牽強的。

應該可以在不使用Spring IOC容器的情況下使用一些更原始的Spring MVC功能 - 畢竟,這是IoC的全部要點。

但是,這很困難,因為許多Spring MVC組件使用Guice不會知道的Spring專有生命周期回調(例如InitializingBeanDisposableBean )。 你必須自己處理這些。

但是,一個更好的問題是你為什么要這樣做? 如果沒有使用Spring IoC,Spring MVC將失去其大部分吸引力。 我不明白為什么你會想要使用一個沒有另一個。

一個並排的解決方案: http//www.earldouglas.com/guice-with-a-spring-twist

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM