为了让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的自动配置都会失效(包括静态资源页的访问等等),而需要我们自己手段配置所有的类;