Да, вы можете.Это упомянуто в официальной документации GWT , хотя и не очень подробно.
Мне очень помогло это сообщение в блоге Дэвида Чандлера.
Некоторые указатели:(примеры ссылок взяты из проекта, обсуждаемого в сообщении в блоге)
Методы поиска сущностей (find
, create
, getId
, getVersion
) можно перемещать вуниверсальный класс локатора ( пример ).Чтобы это работало, ваши сущности должны расширить класс BasicEntity с методами getId
и getVersion
.Затем на клиенте вы должны указать локатор следующим образом:
@ProxyFor(value = MyEntity.class, locator = GenericLocator.class)
public interface MyEntityProxy extends EntityProxy {
...
}
Методы доступа к данным можно перенести в службу.Вы можете иметь общую службу ( пример ), а затем расширить ее для каждой сущности, чтобы предоставить конкретные методы ( пример ).
На клиенте вы определяете свою службу следующим образом:
// MyEntityDao is your server service for MyEntity
@Service(value = MyEntityDao.class, locator = MyServiceLocator.class)
interface MyEntityRequestContext extends RequestContext {
Request<List<MyEntityProxy>> listAll();
Request<Void> save(MyEntityProxy entity);
...
}
Обратите внимание также на необходимость поиска службы.Это может быть так просто, как это .