С чего начать с добавления Spring в бэкэнд GWT?
У меня есть приложение GWT, в которое я хотел бы добавить Spring, и в основном использую Spring с JdbcTemplate для обработки моего соединения с базой данных и модели DAO. Я довольно опытен в работе с GWT, но только начинаю изучать Spring.
Что мне не понятно, так это где и как я бы инициализировал Spring в своем приложении GWT? Мне нужно инициализировать контекст приложения где-то, я предполагаю. Можно ли сделать это с помощью метода RPC, вызванного из onModuleLoad() во внешнем интерфейсе, но будут ли объекты по-прежнему доступны позже, если я это сделаю?
В основном я ищу общий обзор того, как и где инициализировать Spring в бэк-энде, чтобы я мог начать разработку и эксперименты с компонентами Springs.
Благодарю вас!
1 ответ
Несколько лет назад я сделал интеграцию Spring-GWT, выполнив примерно следующие шаги:
- Сконфигурируйте Spring ContextLoaderListener в web.xml для запуска корневого WebApplicationContext в Spring.
Создайте базовый класс RemoteServiceServlet, в котором есть методы для получения пружинного ApplicationContext из ServletContext. Это можно сделать, используя что-то вроде следующего:
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
Сделать все сервлеты RPC расширяет этот базовый класс.
- Сервисные методы теперь могут легко получить SpringConfision. Вы можете настроить bean-компоненты уровня службы и данных в контексте Spring и сделать их доступными для своего RPC-сервлета.
Единственная проблема с этим подходом состояла в том, что сервлет RPC сам по себе не создан Spring, поэтому вы не можете вставить их зависимости.
Теперь вы можете использовать сторонние фреймворки для интеграции Spring-GWT. Например, модуль Dispatch в GWT Platform позволяет вам сконфигурировать ваш обработчик действий как пружинные бины. Такие решения в основном используют один сервлет RPC, предоставляемый платформой. Этот каркасный RPC-сервлет отвечает за создание экземпляров обработчиков на стороне сервера и их вызов. Если вы готовы изучить эти дополнительные рамки, они могут быть лучшими долгосрочными решениями, чем те, которые я описал выше.