//如果,想diy一些定制化的功能,只要写这个组件,然后将他交给spring boot,spring boot就会帮我们自动配置
//扩展springmvc dispatchservlet
public class MyMvcConfig implements WebMvcConfigurer {
@Bean//ViewResolver 实现了视图解析器接口的类,我们就可以把它看作视图解析器
public ViewResolver MyViewRsolver(){
return new MyViewRsolver();
}
//自定义了一个自己的视图解析器MyViewRsolver
public static class MyViewRsolver implements ViewResolver{
@Override
public View resolveViewName(String s, Locale locale) throws Exception {
return null;
}
}
}
//如果我们要扩展springmvc ,官方建议我们这样做
//@EnableWebMvc,这玩意就是导入了一个类DelegatingWebMvcConfiguration从容器中获取所有的webmvcconfig
// 所有需要接管mvc的类都不能加@EnableWebMvc因为@EnableWebMvc下导入了@Import(DelegatingWebMvcConfiguration.class)
//ngWebMvcConfiguration继承于WebMvcConfigurationSupport
//而在Web WebMvcAutoConfiguration中有条件@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
//@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)这个类不存在时生效
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Override//视图跳转
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("dudu").setViewName("test");
}
}
在spring boot中,有非常多的xxx Configuration帮助我们进行扩展配置,只要看见这个东西,我们就要注意了。