Spring Boot应用程序中的控制器继承



我有一个带有许多不同@restController的春季启动应用程序一开始,所有这些都会执行以下操作:

if (user != null) {
            log.debug("Got the following request: " + request.getURI().getPath() + " from: " + user.getName());
        } else {
            log.error("Warning user is not defined");
            return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
        }

如何制作父控制器,所有请求都将进行这些检查,而每个子控制器将继续其唯一的逻辑?

就像评论中提到的其他人一样,有很多方法可以使此工作。就个人而言,我希望Spring AOP记录这些内容或拦截器/过滤器。但是,您可以通过继承本身来实现此功能,这不是一个好的解决方案。做一些类似的例子,希望您可以从那里挑选。

public class A extends Logger {
    //RequestMapping stuff
    public void test(){
        logInfo(user);
    }
}
public class Logger {
    public void logInfo(User user){
        // Your log statements here
    }
}

这不仅使它毫无意义,而且不可计入,因为您必须对find and replace进行很多操作,并且对控制器进行了较小的更改,否则日志语句将随着应用程序的增长而乏味。

最新更新