MVPスタイル(GWTP)でGWTアプリケーションを開発し始め、サーバー側で認証と承認にSpringセキュリティを使用しています。GWTにグローバルに必要なオブジェクトを格納するためのベストプラクティス
アプリケーションの多くのビューでは、現在のユーザーの許可された権限に関してコントロールを有効または無効にする必要があります。私はすでに、必要なすべての情報を含むuserDetailsDtoへのアクセスを提供するRPCサービスを持っています。
今私の質問:クライアント側にユーザーのDTOを格納するのに最適な場所は何ですか?
多くのプレゼンターではユーザー権利が関連しているため、どこにでも渡す必要があります。別の方法として、すべてのプレゼンタでRPCサービスインスタンスを設定し、毎回ユーザーの詳細を要求することもできます(おそらくクライアント側にキャッシュされます)。しかし、私はこの目的のためだけに各プレゼンターにユーザーRPCサービスを持たせるという考えが嫌いです。
正直言って、私はむしろ、UserDetailsオブジェクトを配置する場所と、アプリ内のどこからでもアクセスできる中央レジストリを好むでしょう。 GWTに既にそのようなレジストリがありますか?
私の例のように、水平に使用されるオブジェクトによく直面することがあります。 GWTでそれらを扱うには?
これは私の現在の解決策です。しかし、1)静的変数は単体テストには問題があり、2)決定するのは難しいです。どの部分(クラス)がその静的インスタンスを保持するかは責任があります。プレゼンター、RPCサービス(そこからユーザーオブジェクトにアクセスしたい場合は、ビューオブジェクト内のRPCサービスに依存していることを意味します) – rainer198
私は現在のユーザーをClientFactory実装に格納しています。これは単純であり、KISS原則(http://en.wikipedia.org/wiki/KISS_principle) – koma
私はクライアントファクトリの代わりにGINを使用していますが、私はこの解決策が好きです。この質問は単一の真の答えを持つことはできません(stackoverflowは私に警告しましたそれは拒否される可能性があるので)、そう、Riley Lark、両方の答えを「正しい」とマークできれば、私はそうするだろう;-) – rainer198