Gwt 带有服务层的RequestFactory

Gwt 带有服务层的RequestFactory,gwt,gwt-rpc,requestfactory,Gwt,Gwt Rpc,Requestfactory,我需要将GWT与基于服务的域层一起使用,而不是与DAO一起使用bean。具有MVP和RequestFactory的GWT2.1体系结构是否适用于此?还是我应该留在RPC 感谢GWT 2.1.1添加了一个和机制,允许您控制RequestFactory服务器代码如何获取对实体和服务对象实例的引用 例如,您可以声明如下代码 class MyService.class { // Note that this is not a static method public void doSomethi

我需要将GWT与基于服务的域层一起使用,而不是与DAO一起使用bean。具有MVP和RequestFactory的GWT2.1体系结构是否适用于此?还是我应该留在RPC

感谢GWT 2.1.1添加了一个和机制,允许您控制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();
}
class MyService.class{
//请注意,这不是一个静态方法
公共无效doSomething(){…};
}
类MyServiceLocator实现ServiceLocator{
公共对象getInstance(类clazz){
//或者使用Guice、Spring或任何提供MyService实例的工具
返回新的MyService();
}
}    
接口MyRequestFactory扩展了RequestFactory{
@服务(value=MyService.class,locator=MyServiceLocator.class)
接口ServiceRequest扩展了RequestContext{
请求doSomething();
}
serviceRequestmyService();
}

如果您需要更多地控制RequestFactory如何与服务器域对象或服务代码交互,您可以将的实例注入服务层。

是否有任何示例或scaffold应用程序演示这些功能?ThanksThomas Broyer是一位非常积极的用户,为RequestFactory功能和文档做出了贡献。他正在写一系列关于射频的博客文章。他也在GWT Google Group上发了不少帖子。我应该在哪个包中编写MyServiceLocator类?在共享还是服务器中?我试图在共享包中这样做,但它给出了一个错误:com.google.gwt.sample.server.TreeService类型没有可用的源代码;您是否忘记继承所需的模块?这可能是因为共享包不应引用服务器包中的类。如果ServiceLocator实现将位于服务器包中,您可以使用@ServiceName注释,该注释使用字符串文字而不是类文字来支持定位器或域对象对GWT模块不可见的情况。