Наследование контроллера в приложении весенней загрузки - PullRequest
0 голосов
/ 08 июля 2019

У меня есть приложение весенней загрузки с большим количеством различных @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();
        }

Как я могу сделать родительский контроллер, который для всех запросов будет выполнять эти проверки, и тогда каждый дочерний контроллер продолжит свою уникальную логику?

1 Ответ

0 голосов
/ 09 июля 2019

Как и другие, упомянутые в комментариях, есть много способов заставить это работать.Лично я предпочел бы, чтобы 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 и небольшие изменения в контроллере или операторах журнала.будет утомительным по мере роста вашего приложения.

...