還記得Day01我們一步一步建立的Spring MVC專案嗎,我們把前端來的請求都轉交給DispatchServlet處理的設定嗎,請參考Spring官網寫的設定
<web-app>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/app-context.xml</param-value>
</context-param>
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
</web-app>
接下來,你一定會很好奇Spring Boot怎麼自動裝配這樣的設定,
我們導入web-starter就幫我們自動配置好相對應需要的Component例如:DispatcherServlet、tomcat等等。
我們先來看看Spring Boot都幫我們載入了哪些東西,SpringApplication.run回傳了ConfigurableApplicationContext,就從他找東西吧
果然dispatchServlet在容器內
場景啟動器中的spring-boot-starter,透過autoconfigure進行按需自動裝配
autoconfigure中有包山包海的自動裝配
導入spring-boot-starter-xxx -> 觸發spring-boot-autoconfigure -> DI container就會有對應的功能