博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot2.0+中,自定义配置类扩展springMVC的功能
阅读量:6306 次
发布时间:2019-06-22

本文共 2551 字,大约阅读时间需要 8 分钟。

在spring boot1.0+,我们可以使用WebMvcConfigurerAdapter来扩展springMVC的功能,其中自定义的拦截器并不会拦截静态资源(js、css等)。

@Configurationpublic class MyMvcConfig extends WebMvcConfigurerAdapter {    @Override    public void addViewControllers(ViewControllerRegistry registry) {       // super.addViewControllers(registry);        //浏览器发送 /atguigu 请求来到 success        registry.addViewController("/atguigu").setViewName("success");    }    //所有的WebMvcConfigurerAdapter组件都会一起起作用    @Bean //将组件注册在容器    public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){        WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {            @Override            public void addViewControllers(ViewControllerRegistry registry) {                registry.addViewController("/").setViewName("login");                registry.addViewController("/index.html").setViewName("login");                registry.addViewController("/main.html").setViewName("dashboard");            }            //注册拦截器            @Override            public void addInterceptors(InterceptorRegistry registry) {                //super.addInterceptors(registry);                //静态资源;  *.css , *.js                //SpringBoot已经做好了静态资源映射                registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**")                        .excludePathPatterns("/index.html","/","/user/login");            }        };        return adapter;    }    @Bean    public LocaleResolver localeResolver(){         return new MyLocaleResolver();    } }

在spring boot2.0+以后,WebMvcConfigurerAdapter就过时了,目前通过继承WebMvcConfigurationSupport类(ps:继承后好像MVC自动配置不生效了)或者实现WebMvcConfigurer接口来扩展springMVC的功能。然而该版本自定义的拦截器会拦截静态资源,因此在使用spring2.0+时,配置拦截器之后,我们要把静态资源的路径加入到不拦截的路径之中。

@Configurationpublic class MyMvcConfig implements WebMvcConfigurer{         @Override        public void addViewControllers(ViewControllerRegistry registry) {             registry.addViewController("/").setViewName("login");            registry.addViewController("/index.html").setViewName("login");            registry.addViewController("/main.html").setViewName("dashboard");        }         @Override        public void addInterceptors(InterceptorRegistry registry) {            //将静态资源排除在拦截之外            registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**")                    .excludePathPatterns("/index.html","/","/user/login","/static/**");        }        @Bean        public LocaleResolver localeResolver(){            return new MyLocaleResolver();        } }

转载于:https://www.cnblogs.com/XtsLife/p/10488575.html

你可能感兴趣的文章
How to recover from root.sh on 11.2 Grid Infrastructure Failed
查看>>
rhel6下安装配置Squid过程
查看>>
《树莓派开发实战(第2版)》——1.1 选择树莓派型号
查看>>
在 Linux 下使用 fdisk 扩展分区容量
查看>>
结合AlphaGo算法和大数据的量化基本面分析法探讨
查看>>
如何在 Ubuntu Linux 16.04 LTS 中使用多个连接加速 apt-get/apt
查看>>
《OpenACC并行编程实战》—— 导读
查看>>
机器学习:用初等数学解读逻辑回归
查看>>
如何在 Ubuntu 中管理和使用逻辑卷管理 LVM
查看>>
Oracle原厂老兵:从负面案例看Hint的最佳使用方式
查看>>
把自己Github上的代码添加Cocoapods支持
查看>>
C语言OJ项目参考(2493)四则运算
查看>>
零基础入门深度学习(二):神经网络和反向传播算法
查看>>
find和xargs
查看>>
数据结构例程—— 交换排序之快速排序
查看>>
WKWebView代理方法解析
查看>>
IOS定位服务的应用
查看>>
[SMS&WAP]实例讲解制作OTA短信来自动配置手机WAP书签[附源码]
查看>>
IOS中图片(UIImage)拉伸技巧
查看>>
【工具】系统性能查看工具 dstat
查看>>