Как использовать интерфейсы и реализации Spring в gwt путем меньшего кодирования? - PullRequest
0 голосов
/ 09 октября 2011

У меня есть проект Maven с двумя модулями; один пружинный модуль и один для модуля GWT. Модуль GWT зависит от модуля пружины. И у меня есть интерфейсы XService и реализации XServiceImpl в виде бинов Spring, аннотированных как @Service («myXServiceImpl»).

Я хочу вызвать метод bean-компонента myXServiceImpl со стороны клиента gwt. Для этого я пишу соответствующие классы GWT; XGWTService, XGWTServiceAsync, XGWTServiceImpl и XGWTServiceImpl использует XService от @Autowired (я использую spring4gwt, а XGWTServiceImpl - это пружинный компонент, аннотированный как @Service («myXGWTServiceImpl»)) 100

На самом деле, я хочу получить простое практическое решение, определяющее только XGWTServiceAsync, аннотированный @RemoteServiceRelativePath ("spring4gwt / myXServiceImpl")

Интересно, есть ли простой способ вызывать мои пружинные бины без кодирования дополнительных 3 классов (XGWTService, XGWTServiceAsync, XGWTServiceImpl)?

Заранее спасибо

1 Ответ

0 голосов
/ 09 октября 2011

Поместите интерфейс XService и все используемые им классы в отдельный пакет. Заставьте XService расширить RemoteService. Затем вы можете определить модуль GWT, который включает эти классы. Упакуйте исходный код вместе с файлом jar. Унаследуйте модуль GWT в основном модуле GWT и реализуйте только интерфейс XServiceAsync.

Вы также можете покончить с ручной реализацией XServiceAsync - плагин maven GWT имеет опцию для генерации версии Async из интерфейса.

Единственная неловкая вещь в этом - заставить XService реализовать интерфейс RemoteService GWT и, следовательно, сделать так, чтобы реализация вашей службы зависела от GWT jar. Но так как это не мешает реализации, это то, с чем мы можем жить.

Другой вариант - просто создать интерфейс XGwtService, расширяющий XService & RemoteService, - не добавляя в него никаких дополнительных методов. На сервере должно быть достаточно только XServiceImpl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...