2012-11-09 94 views
10

在Spring MVC驅動的容器中是否有意義的註釋(@Controller)抽象類,基本上想要放置大多數可重用的方法作爲異常處理程序在抽象類中,並擴展與基類,以便不必重複相同的樣板代碼。例如。是否有意義有一個註釋的抽象控制器類 - 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擴展它將被添加到應用程序上下文中(因爲它使用了一個streotype註釋進行註釋),並且@ExceptionHandler@ResponseStatus註釋將被授予。

+1

感謝尼古拉斯的快速反應。關於不使用@Controller註釋抽象類是絕對正確的,但不會傷害,因爲它有助於查看該類是否適用於Controller類。 – MasterV

相關問題