0

他のコントローラーが継承する基本コントローラークラスを作成したいと思います。クエリ文字列を介して認証トークンを取得する単純なパブリックAPIがあるので、これを実行します。

public class MyBaseController {
   private String token = "";
   public MyBaseController() {
   }
}

そして、私の実際のコントローラーは次のようになります。

@Controller
@RequestMapping("/api/users")
public class UserController extends MyBaseControler {

  // controller methods here
}

私の質問は、ベースコントローラーでHttpServletRequestにアクセスし、クエリ文字列パラメーター "?token = abc123"値を取得して、トークン変数に値を設定するにはどうすればよいですか。

このスレッドは安全ですか? リクエストごとに新しいコントローラーインスタンスが存在することは正しいと思いますか?

4

1 に答える 1

2

ステートレスの場合、コントローラーの方が適しています。

必要に応じてSpringサービスを挿入できますが、メンバー変数としてトークンの値に固執する必要がある理由はわかりません。

トークンをセッションスコープに格納する可能性がはるかに高くなります。あなたの考えは間違っていると思います。

Spring自体がコントローラーの継承から離れたことを指摘しておきます。これらはすべてアノテーションベースになり、共通の基本クラスやインターフェイスはありません。なぜ彼らが放棄したデザインに戻るのは良いことだと思いますか?

ベースコントローラーも必要ありません。

于 2012-12-26T23:28:00.747 に答える