Как не использовать аспект весной для записи параметра запроса и параметра ответа в консоль - PullRequest
0 голосов
/ 17 октября 2018

Я обнаружил, что класс InvocableHandlerMethod.invokeForRequest получит параметр запроса из запроса и вызовет класс контроллера для получения возвращаемого значения.Что я должен изменить метод для записи параметров в консоль?Я хочу расширить ServletInvocableHandlerMethod и переопределить метод invokeForRequest, но я не могу вызвать getMethodArgumentValues, потому что он является личным. Должен ли я скопировать класс ServletInvocableHandlerMethod и InvocableHandlerMethod, чтобы изменить частный метод?Или есть другой способ регистрации параметров запроса и ответа без аспекта?

1 Ответ

0 голосов
/ 17 октября 2018

Просто создайте перехватчик

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class LoggingInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // log here
        return true; // let go further
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        // log here
    }
}

и зарегистрируйте его

// example for Spring MVC annotation-based configuration
public class YourWebConfig extends WebMvcConfigurer {
    ...
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoggingInterceptor());
    }
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...