3

SpringMVCでの継承の使用を調査しています。

他のコントローラーが拡張できるベースコントローラーを用意するのは良い考えですか?

基本コントローラーは、すべてのコントローラーに共通の機能を保持することです。たとえば、ログインしたユーザーへのハンドルを取得する場合など。

ベースコントローラーを使用するのが良い考えではない場合、私が上で述べたようなものを実装するための他の提案はありますか。

4

1 に答える 1

2

他のコントローラが拡張できるベース コントローラを使用することはまったく問題ありません。Spring が @Controller アノテーションを導入したとき、必要なクラス階層を使用できるようになりました。

オブジェクト指向の設計原則として、継承よりも構成を優先することをお勧めします。経験則として (厳格な規則ではありません)、一般的なコントローラー コードを、 @Inject または @Autowiredを介してコントローラーに注入できるインターフェイスを持つクラスに移動することをお勧めします。

ログインしているユーザーへのハンドルを取得するためのもう 1 つの提案は、もう少し手間がかかりますが、一度取得すると非常に便利です。コントローラー メソッドの引数で現在のユーザー アノテーションを使用する方法については、こちらの説明を参照してください。これは私が自分のプロジェクトで行っていることであり、うまく機能します!

于 2013-02-17T10:43:28.047 に答える