GWT 2.1.1 добавляет механизм Locator
и ServiceLocator
, чтобы позволить вам контролировать, как код сервера RequestFactory получает ссылки на сущности и экземпляры объектов службы.
Например, вы можете объявить код как
class MyService.class {
// Note that this is not a static method
public void doSomething() {....};
}
class MyServiceLocator implements ServiceLocator {
public Object getInstance(Class<?> clazz) {
// Or use Guice, Spring, whatever provides instances of MyService
return new MyService();
}
}
interface MyRequestFactory extends RequestFactory {
@Service(value=MyService.class, locator=MyServiceLocator.class)
interface ServiceRequest extends RequestContext {
Request<Void> doSomething();
}
ServiceRequest myService();
}
Если вам нужен еще больший контроль над тем, как RequestFactory взаимодействует с объектами домена вашего сервера или служебным кодом, вы можете внедрить экземпляры ServiceLayerDecorator
в уровень обслуживания.