我正在开发一个足够大的Java GWT-GAE项目,我遇到了一些我以前没有LOC的问题。
我在ServiceImpl类中有几个方法需要直接从其他ServiceImpl类和RPC调用。我认为最好避免像Service s = new ServiceImpl()这样的声明,所以我想把方法体移到适当的服务器端类中,让ServiceImpl类中的方法调用它们。它是正确的解决方案还是有特定的模式可供遵循? 如果是,那么只有一个包装所有RPC方法的ServiceImpl会不会更好? 客户端变得有点慢,我认为这是因为我有几个这样的声明:public static final * ServiceAsync * Service = GWT.create(* Service.class);
我希望我已经清楚了。 提前谢谢。
安东尼奥
答案 0 :(得分:1)
对于服务器端实现,请考虑使用GWT-SL (Server Library),它允许您将GWT与Spring集成。您的服务实现类变为简单的Pojos,您不必担心创建它们,只需让Spring担心!
要在客户端创建Service实例,请使用此模式(在* Service接口内)以确保您只创建一次作为单例的服务:
/**
* Utility class for simplifying access to the instance of async service.
*/
public static class Util {
private static UserServiceAsync instance;
public static UserServiceAsync getInstance(){
if (instance == null) {
instance = GWT.create(UserService.class);
}
return instance;
}
}
在客户端创建服务:
private UserServiceAsync userService = UserService.Util.getInstance();