2

私は現在、以下を確認できるアプリケーションに取り組んでいます。

  • コントローラ A: service.getSession(userId, Status.Started);
  • コントローラ B: service.getSession(userId, Status.Done);

(ここで、ステータスは可能なステータスの列挙を表します)

  • サービス: getSession(Long id, Status status);

コントローラー A にアクセスしようとするユーザーには特定の役割があり、B にアクセスするユーザーには他に 2 つのサービス メソッドがあるはずなので、正しくないと思います。

  • getSessionReady(ロング ID);
  • getSessionClosed(ロング ID);

そうすることで、Spring セキュリティを明確に使用でき、適切なロールが適切なサービス メソッドにアクセスできるようになります。2 つのメソッドを作成する必要がありますが、アプリを保護しやすくなり、サービス層の目標は実際にアクセスを制限してロジック エラーを制限することですよね?

4

1 に答える 1

1

はい。サービスレイヤー(または実際には任意のクラス)を一般的にするほど、付加価値は低くなります。

サービスレイヤーでアクセスを制限し、有効な呼び出しのみがドメインに入るようにします。

また、より多くのメソッドは悪いことではありません!それらが理にかなっている限り、気軽に。通常、異なる動作をトリガーする追加のパラメーターを持つメソッドはコードの臭いであり、分割する必要があります。

于 2013-02-21T16:13:06.393 に答える