Не видятся методы контроллеров, помеченных @EnableAsync
Есть большой легаси-проект на Java, написанный с использованием Spring 3. Был проведен апгрейд до Spring 5. После этого, помимо прочего, проявился странный баг: перестали быть доступны эндпойнты в контроллерах, помеченных аннотацией @EnableAsync. Пример контроллера, переставшего быть доступным:
@EnableAsync
@Controller("/datasource/*")
public class DataSourceController extends SafeController {
@RequestMapping("/getData")
public ModelAndView getFormData(FormInfo formInfo, DatasourceInfo datasourceInfo, Integer page, Integer pageSize, String columns) {
….
}
}
Эту проблему мы решили, перенеся весь маппинг с контроллера на методы:
@EnableAsync
@Controller("/")
public class DataSourceController extends SafeController {
@RequestMapping("/datasource/getData")
public ModelAndView getFormData(FormInfo formInfo, DatasourceInfo datasourceInfo, Integer page, Integer pageSize, String columns) {
….
}
}
Однако корни происходящего выяснить не удалось. Контроллеров, не помеченных @EnableAsync, проблема не коснулась. Вдумчиво изучил описание @EnableAsync и @RequestMapping, но внятного объяснения не обнаружил. Однако хочется более глубокого понимания, поэтому обращаюсь к знающим людям: не могли бы вы указать, почему такое могло произойти? Большое спасибо.