在Spring MVC驱动的容器中有一个带注释的(@Controller)抽象类有意义吗,基本上想放置大多数可重用的方法,例如异常处理程序 在抽象类中并用基类扩展它,这样就不必重复相同的样板代码。例如。
抽象 Controller 类:
@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 类
@Controller
class ExternalControllerXXX extends AbstractExternalController {
...
}
最佳答案
没有必要使用 @Controller
注释来注释您的 AbstractExternalController
类,尽管将其留在那里不会破坏任何东西。不管你有没有@Controller
注解,你当然可以有方法注解,它们都可以工作。扩展它的 ExternalControllerXXX
将被添加到应用程序上下文中(因为它带有 streotype 注释),以及 @ExceptionHandler
和 @ResponseStatus
注释将被尊重。
关于java - 有一个带注释的抽象 Controller 类是否有意义 - Spring MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313315/