java - 有一个带注释的抽象 Controller 类是否有意义 - Spring MVC

标签 java spring spring-mvc controller abstract-class

在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/

相关文章:

java - 使用GenericsDAO + SpringMVC + Hibernate报错

java - 当库添加为依赖项时,Spring 初始化不起作用

spring - 如何在 Tomcat 7 上部署 Grails 3 应用程序?

java - 从实体到 DTO 的转变

java - 字母计数器(使用子字符串而不是通常的 atChar() 方法)

java - Java-API 的实际 JSON 序列化基准

java - 带有 MySql 数据库的 Spring Boot/Web

mysql - 带连接的计数查询中的 Sql 异常

Java NIO HTTP 服务器和浏览器

java - Xml-用Spring写Hibernate的玄机