HandlerMethodReturnValueHandler не работает - PullRequest
0 голосов
/ 08 апреля 2019

В моем весеннем загрузочном проекте я создал класс, расширяющий HandlerMethodReturnValueHandler

со следующим кодом (упрощенно для краткости)

public class ModelResolver implements HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler {
    @Override
    public boolean supportsReturnType(MethodParameter returnType) {
        return true;
    }
    @Override
    public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
        //Some code
    }
}

Затем в моем классе Config сделал:

@Configuration
@EnableAutoConfiguration
public class Config implements WebMvcConfigurer {
    @Override
    public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) {
        handlers.add(new ModelResolver());
    }
}

Затем в моем методе интеграционного теста просто создали mockMvc, подобный следующему

MvcResult mvcResult = mockMvc.perform(post(BASE_URL + "create"))
                .andExpect(status().isBadRequest())
                .andReturn();

, но handleReturnValue не вызывается.

Я ставлю точки останова в addReturnValueHandlers конфигурации, а также внутри supportsReturnType и handleReturnValue.

Один внутри addReturnValueHandlers пойман, но ни supportsReturnType, ни handleReturnValue не пойман!

Ребята, у вас есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...