自定义某一个组件
如果我们想自定义某一个组件,扩展springmvc,比如:视图解析器
- 自定义类实现视图解析器(组件)的接口,并重写方法
- 再把自定义的组件放到容器中(@Bean)
//根据官方文档,如果想要保持springmvc的配置,并添加一些配置,可以增加WebMvcConfigurer类型的@Configuration类,使自定义的类变成配置类
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
//想要自定义视图解析器,就需要实现视图解析器接口,并重写方法
//也可以通过@ConfigurationProperties(prefix = “属性名”)和自定义的配置文件yaml或properties绑定,调用配置文件里面的属性
//只有放到容器中,springboot才能接管
//2. 放到bean中
@Bean
public ViewResolver myViewResolver(){
return new MyViewResolver();
}
//自定义视图解析器需要实现ViewResolver接口
//1. 写一个静态内部类实现ViewResolver接口
private static class MyViewResolver implements ViewResolver{
@Override
public View resolveViewName(String s, Locale locale) throws Exception {
return null;
}
}
}
- 给 DispatcherServlet 中的 doDispatch方法 加个断点进行调试一下
- 查看debug信息,就可以看到我们自定义视图解析器
自定义一个视图跳转
- 在配置类里面重写addViewControllers方法
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
//在配置类里面重写addViewControllers方法
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 浏览器发送/test , 就会跳转到test页面;
registry.addViewController("/t1").setViewName("test");
}
}