springboot:springMVC配置扩展

    当然在学习配置扩展肯定离不开我们官方文档

初次尝试

    我们需要编写一个@Configuration注解类,我们要继承WebMvcConfigurer接口实现方法,还不能标注@EnableWebMvc注解

    步骤:

  1. 在我们目录下创建…/config文件夹,里面文件存放的是我们想要编写的注解类
    在这里插入图片描述
// 如果。你想定义一些定制化的功能。只要写这个组件,然后将它交给springboot,springboot就会帮我们自动装配
//扩展 springMVC dispatchservlet
@Configuration 
public class MyMvcConfig implements WebMvcConfigurer {
    //public interface ViewResolver 实现了视图解析器接口的类,我们就可以把他看作视图解析器

	//把咱们自己定义的视图解析器返回给springboot处理,进行自动装配
    @Bean
    public ViewResolver myViewResolver(){
        return new MyViewResolver();
    }

    //自定义了一个自己的视图解析器
    public static class MyViewResolver implements ViewResolver{
        @Override
        public View resolveViewName(String s, Locale locale) throws Exception {
            return null;
        }
    }
}
  1. 通过debug检查我们自己定义的视图解析器是否被加载
    • 双击shift进行查询dispatchservlet,在他接受请求和响应的方法上打上相应的断点
      在这里插入图片描述
    • 运行debug查看
      在这里插入图片描述
      观察,这时我们就可以查看到,自己编写的注解类被自动装配了,并封存在bean中
      注意:打断点以后需要访问http://localhost:8080/来激活debug

再探配置扩展

    自定义配置类实现页面跳转
    步骤

  1. 在我们MyMvcConfig文件中改写一下代码,进行重写addViewControllers方法,实现简单页面跳转功能
//如果我们要扩展springmvc,官方建议我们这样做
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {

    //视图跳转
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/zheng").setViewName("test");
    }
}
  1. 在templates/… 文件下创建test.html页面,当作我们的跳转页面
<!doctype html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<h1>页面</h1>
<hr>
</body>
</html>
  1. 测试
    在这里插入图片描述
    注意:路径问题,addViewController路由要跳转的路径,setViewName要跳转的页面

    简单提一嘴:如果你在配置类上添加了@EnableWebMvc,他会导入WebMvcConfigurationSupport.class这样一个类,这个类一旦加入进来一的所有自动配置都会失效,自然页面也不会呈现。

如果实在想加:推荐你们看一下WebMvcAutoConfiguration.class这个类的底层代码,你会发现很多有趣的东西

总结

  • 在自己定义配置类的时候一定要在类上加上@Configuration 证明我们现在是要编写配置类了
  • 注意引用WebMvcConfigurer接口,定义这是一个springMVC扩展配置类
  • 要通过@Bean把自定义的视图解析器处理给springboot,进行自动装配
  • 在springboot中,有非常多的 xxxx Configuration 会帮助我们进行扩展配置,只要看见了这个东西,我们就要注意了
  • @EnableWebMvc推荐不加
发布了65 篇原创文章 · 获赞 0 · 访问量 662

猜你喜欢

转载自blog.csdn.net/adsdaas/article/details/105041257