我正在开发一个 Java GWT-GAE 项目,该项目变得足够大,但我面临着一些问题,我以前没有一些 LOC。
我的 ServiceImpl 类中有几个方法,我需要直接从其他 ServiceImpl 类以及 RPC 调用它们。我认为最好避免像 Service s = new ServiceImpl() 这样的声明,因此我想将方法体移动到适当的服务器端类中,并让 ServiceImpl 类中的方法调用它们。这是正确的解决方案还是有特定的模式可以遵循? 如果是的话,只有一个 ServiceImpl 来包装所有 RPC 方法不是更好吗? 客户端变得有点慢,我认为这是因为我有几个这样的声明: public static final *ServiceAsync *Service = GWT.create(*Service.class);
我希望我已经说清楚了。 提前致谢。
安东尼奥
最佳答案
对于服务器端实现,请考虑使用 GWT-SL (Server Library)它允许您将 GWT 与 Spring 集成。您的 Service 实现类将变成简单的 Pojo,您不必担心创建它们,只需让 Spring 来担心!
要在客户端创建服务实例,请使用此模式(在 *Service 接口(interface)内)以确保您仅将服务作为单例创建一次:
/**
* 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();
关于java - 为什么不为所有 RPC 使用一个 ServiceImpl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11148115/