2011-01-24 7 views
7

Это, наверное, немой вопрос для экспертов в Spring MVC, но я не знаю, как это работает под капотом, поэтому я спрашиваю.Можно ли интегрировать Spring MVC с Guice?

Другая формулировка по тому же вопросу: существуют ли какие-либо зависимости от Spring DI внутри Spring MVC?

+0

Принимали ли вы посмотрите на [Google-sitebricks] (http://code.google.com/p/google-sitebricks/)? – ColinD

ответ

7

Я уверен, что использовать Spring MVC без контейнера МОК нельзя.

Например: в центре Весны 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.

Таким образом, ваш единственный шанс - это реализовать Guice-реализацию ApplicationContext, и это будет очень надуманным, я думаю.

3

Должно быть возможно использовать некоторые из более примитивных функций Spring MVC без использования контейнера Spring IOC - это, в конце концов, вся точка IoC.

Это будет сложно, поскольку многие из компонентов Spring MVC используют обратные вызовы жизненного цикла Spring (например, InitializingBean и DisposableBean), о которых Гиз не знает. Тебе придется обращаться с ними сами.

Лучше вопрос, однако, Почему вы хотите это сделать? Без использования Spring IoC Spring MVC теряет большую часть своей привлекательности. Я не понимаю, почему вы хотели бы использовать один без другого.

+0

Я не могу позволить себе использовать Spring в облаке - для запуска нового экземпляра требуется слишком много времени. И мне нужен MVC для разработки интерфейса. Другими параметрами являются Struts, Stripes и моя простая реализация MVC. – Roman

+0

Struts2 прекрасно сочетается с Guice. Я тоже слышал о хороших вещах о Stripes (не уверен, насколько хорошо он интегрируется с Guice). –

Смежные вопросы