官网:Spring Boot Reference Documentation
官方文档:
如何扩展SpringMVC?编写一个类,实现WebMvcConfigurer接口,加上@Configuration注解,并且不能有@EnableWebMvc注解
扩展SpringMVC举例:
1、自定义视图解析器
//扩展springmvc
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Bean
public ViewResolver myViewResolver(){
return new MyViewResolver();
}
//实现了视图解析器接口(ViewResolver)的类,我们就可以把它看做视图解析器
public static class MyViewResolver implements ViewResolver{
@Override
public View resolveViewName(String viewName, Locale locale) throws Exception {
return null;
}
}
}
2、自定义视图跳转
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
//视图跳转
@Override
public void addViewControllers(ViewControllerRegistry registry) {
//访问 /hello 会跳转到 /test
registry.addViewController("/hello").setViewName("/test");
}
}
补充:
为什么不能加@EnableWebMvc注解?
源码:
但是@EnableWebMvc这个注解导入了 DelegationWebMvcConfiguration这个类,并且这个类继承了 WebMvcConfigurationSupport
也就是说,加上了@EnableWebMvc这个注解,会让WebMvcAutoConfiguration失效