1

私は十分に大きくなっているJavaGWT-GAEプロジェクトを開発していますが、以前はいくつかのLOCがなかったいくつかの問題に直面しています。

ServiceImplクラスには、他のServiceImplクラスから直接呼び出す必要があるメソッドとRPCから呼び出すメソッドがいくつかあります。Service s = new ServiceImpl()のような宣言は避けたほうがいいと思うので、メソッド本体を適切なサーバー側クラスに移動し、ServiceImplクラスのメソッドに呼び出させることを考えました。それは正しい解決策でしょうか、それとも従うべき特定のパターンがありますか?もしそうなら、すべてのRPCメソッドをラップするServiceImplを1つだけ持つ方が良いのではないでしょうか。クライアントは少し遅くなっていますが、これは次のような宣言があるためだと思います。public static final * ServiceAsync * Service = GWT.create(* Service.class);

はっきりしているといいのですが。前もって感謝します。

アントニオ

4

1 に答える 1

1

サーバー側の実装については、GWTをSpringと統合できるGWT-SL(サーバーライブラリ)の使用を検討してください。Service実装クラスは単純なPojoになり、それらを作成する必要はありません。Springにそのことを心配させてください。

クライアント側でサービスインスタンスを作成するには、このパターン(* Serviceインターフェイス内)を使用して、サービスをシングルトンとして1回だけ作成するようにします。

/**
 * 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();
于 2012-06-22T06:25:43.700 に答える