Как отладить проблему сопоставления обработчика Spring Boot - PullRequest
0 голосов
/ 27 февраля 2020

Я только что взял кодовую базу, которая является базовым проектом Spring MVC, его конечные точки REST не работают

@RestController
public class RequestWeb {

    ....

    @PostMapping("/requests/v2")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public ResponseEntity<?> postRequestV2( //...
            @RequestHeader(HEADER_FEATURES) String features, //...
            @RequestBody requestBody requestBody //...

    ) {
        ...
    }
}

Все остальные комментарии, относящиеся к контроллеру остальных, и c выглядят правильно для меня. основное приложение использует @SpringBootApplication, @ComponentScan имеет указанное право basePackages.

Я смотрел на ComponentScanAnnotationParser, RestController bean выше был зарегистрирован.

Когда я добавил точка останова на initHandlerMappings в классе DispatcherServlet, есть только три соответствующих бина, которые выглядят неправильно.

Wrong mapping results

по сравнению с другими хороший проект Spring MVC, я вижу, что requestMappingHandlerMapping отсутствует в результатах.

correct results

Я не знаю, почему @PostMapping сделал не работает (он должен был изменить тип компонента на requestMappingHandlerMapping?), где я должен поставить точку останова в Spring Framework для устранения этой проблемы?

...