為了讓SpringBoot保持對SpringMVC的全面支持和擴展,而且還要維持SpringBoot不寫xml配置的優勢,我們需要添加一些簡單的配置類即可實現;
通常我們使用的最多的注解是:
@Bean
@Component
配置后的類就是我們要寫在容器中的一些配置;詳情后續再說,或者你也可以參考官方文檔
關於擴展
這里我們說一下如何做擴展呢,先看一下原先在SpringMvc中我們是如何寫的,來看XML(這是一段關於路徑映射和攔截器的簡單配置,訪問hello路徑也展示success.html的頁面,並且對hello做了攔截設置)
<mvc:view-controller path="/hello" view-name="success"/> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="hello"/> <bean></bean> </mvc:interceptor> </mvc:interceptors>
接下來看下SpringBoot如何實現類似上述的這種情況:(IDEA的快捷鍵 Ctrl+O 可以快速讀取可繼承的全部方法,選擇所需即可)
// SpringBoot2.0版本使用WebMvcConfigurationSupport 來擴展SpringMvc的功能 @Configuration public class MyMvcConfig extends WebMvcConfigurationSupport { @Override protected void addViewControllers(ViewControllerRegistry registry) { // super.addViewControllers(registry); // 瀏覽器發送 /ice 請求,同樣展示success頁面,但是不讀取數據 registry.addViewController("/ice").setViewName("success"); } }
展示結果:(也就是說,SpringBoot的配置類,只需要加上@Configuration 就可以了)
注意:關於擴展,有一個特殊的注解 @EnableWebMvc ,他的作用是全面接管SpringMvc的配置,也就是說SpringBoot的所有關於SpringMvc的自動配置都會失效(包括靜態資源頁的訪問等等),而需要我們自己手段配置所有的類;