Во время запуска приложения Spring идентифицирует все Bean
с помощью XML Config, Java Config или сканирования компонентов и сохранит их в ApplicationContext
.
Spring Boot автоконфигурирует для вас многие Bean-компоненты, включая RequestMappingHandlerMapping.
Когда этот объект Bean initialized, он сканирует ApplicationContext на предмет любых Bean-компонентов, помеченных @Controller
.
Затем выполняется итерация по каждому Controller
bean-компоненту и ищет методы, помеченные знаком @RequestMapping
. Наконец, он сохраняет эти пары сопоставление / обработчик в MappingRegistry
DispatcherServlet
является центральным обработчиком HTTP-запросов для вашего приложения и будет найдите ApplicationContext
любые компоненты, реализующие интерфейс HandlerMapping
, что и делает объект RequestMappingHandlerMapping
(посредством наследования).
Затем он перебирает эти bean-компоненты, прося их разрешить соответствующий обработчик для этого запроса. Компонент RequestMappingHandlerMapping
разрешит обработчик следующим образом: поиск его MappingRegistry
.
Когда совпадение найдено, метод обработчика в конечном итоге становится invoked.
person
Kyle Anderson
schedule
26.07.2017