SpringBoot04:扩展SpringMVC

官网:

官方文档:

如何扩展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失效

经验分享 程序员 微信小程序 职场和发展