2012-11-09 7 views
10

注釈付き(@Controller)抽象クラスをSpring MVCドリブンコンテナに入れるのは基本的に再利用可能なメソッド例外ハンドラを抽象クラスに追加し、同じ定型コードを繰り返す必要がないように、ベースクラスでそれを拡張します。例えば。注釈付き抽象コントローラクラスを持つことは理にかなっていますか? - Spring MVC

抽象コントローラクラス:

@Controller 
    abstract class AbstractExternalController { 

    @ExceptionHandler(NoSuchRequestHandlingMethodException.class) 
    @ResponseStatus(value = HttpStatus.NOT_FOUND) 
    public @ResponseBody ResponseModel handleNotFoundException() { 
      final ResponseModel response = new ErrorModel(); 
      response.setStatus("404"); 
       response.setMessage("Resource Not Found"); 
       return response; 
      } 
... 

    } 

基本コントローラクラス

@Controller 
class ExternalControllerXXX extends AbstractExternalController { 

... 
} 

答えて

8

が中断されません、それを残して、が、@Controller anntationであなたのAbstractExternalControllerクラスに注釈を付けるために不要です何でも@Controllerアノテーションを持っているかどうかに関わらず、メソッドアノテーションを使用できますが、アノテーションは機能します。 ExternalControllerXXXを拡張すると、アプリケーションコンテキストに追加されます(これには線種アノテーションが付加されているため)@ExceptionHandler@ResponseStatusアノテーションが適用されます。

+1

Nicholasの迅速な対応に感謝します。 @Controllerを使って抽象クラスに注釈を付けることは絶対に正しいですが、クラスがControllerクラス用であることを確認するのに役立ちます。 – MasterV

関連する問題