当前位置: 首页 > news >正文

如何用iis做网站电子商务网站建设的论文

如何用iis做网站,电子商务网站建设的论文,我赢网提供的高水平网页设计师,公司网站建设好大家好#xff0c;我是烤鸭#xff1a; 今天遇到一个拦截器失效的问题#xff0c;具体看源码分析下。 环境: springboot 2.x spring 5.x 1. 先说下业务场景 需求是对请求进入时和离开时对和线程id绑定#xff0c;用的Threadlocal#xff0c;现在有一个问题#xff0…大家好我是烤鸭 今天遇到一个拦截器失效的问题具体看源码分析下。 环境: springboot 2.x spring 5.x 1.  先说下业务场景 需求是对请求进入时和离开时对和线程id绑定用的Threadlocal现在有一个问题利用拦截器的方式不生效。 2.   拦截器创建的几种方式 2.1 extends WebMvcConfigurationSupport Configuration public class WebMvcAutoConfigurationAdapter extends WebMvcConfigurationSupport {AutowiredMapiHttpRequestInterceptor mapiHttpRequestInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) {InterceptorRegistration addInterceptor registry.addInterceptor(mapiHttpRequestInterceptor);// 拦截配置addInterceptor.addPathPatterns(/**);} }Component class MapiHttpRequestInterceptor implements HandlerInterceptor{ } 2.2 implements WebMvcConfigurer Configuration public class WebMvcAutoConfiguration3Adapter implements WebMvcConfigurer {AutowiredMapiHttpRequest3Interceptor mapiHttpRequestInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) {InterceptorRegistration addInterceptor registry.addInterceptor(mapiHttpRequestInterceptor);// 拦截配置addInterceptor.addPathPatterns(/**);} }Component class MapiHttpRequest3Interceptor implements HandlerInterceptor{} 先说下结论如果项目中出现了一次 extends WebMvcConfigurationSupport 其他的 extends WebMvcConfigurationSupport 和 implements WebMvcConfigurer 会失效 。 3.   看下源码为啥呢 先看下 WebMvcConfigurationSupport 这个类 addInterceptors 这个方法默认继承的是 DelegatingWebMvcConfiguration这个类就是获取 所有 实现 WebMvcConfigurer 的子类调用他们的方法如果有多个 通过实现 WebMvcConfigurer 创建的拦截器是都可以生效的。 那多个 继承 WebMvcConfigurationSupport  为啥只有一个生效呢答案在这个类WebMvcAutoConfiguration 的 ConditionalOnMissingBean 注解只实例化一个Bean多个继承也只有一个生效。 再看下 addInterceptors 啥时候触发的获取拦截器的时候获取过就不再获取了所以 addInterceptors 在项目启动触发才有效。而 getInterceptors 这个方法是在 handerMapping映射的时候触发的(比如 RequestMappingHandlerMapping、BeanNameUrlHandlerMapping)。 4.   解决方案 针对不同的场景解决方案也不一样我想到的有3个方案。 不继承 WebMvcConfigurationSupport 拦截器全部通过实现 WebMvcConfigurer 接口推荐只继承一次 WebMvcConfigurationSupport ,在这个类管理所有的拦截器(不推荐耦合性太高)针对我的场景我通过 过滤器实现的。注入的代码就不贴了before 和 fater 方法实现了类似拦截器的 preHandle 和 afterCompletion。有一点需要注意的是指定过滤器的排序(默认已经是最高了可以忽略)由于过滤器是链式调用如果想当拦截器用必须指定最先加载还有就是过滤器会拦截静态资源做好对静态资源的放行。 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {if (servletRequest instanceof HttpServletRequest) {HttpServletRequest request (HttpServletRequest)servletRequest;this.before(request);filterChain.doFilter(servletRequest, servletResponse);this.after();} } Bean public FilterRegistrationBean mapiXxxFilterRegister() {FilterRegistrationBean filterRegistrationBean new FilterRegistrationBean();filterRegistrationBean.setOrder(2147483647);filterRegistrationBean.setFilter(this.mapiXxxFilter);filterRegistrationBean.setName(filter-xxx);filterRegistrationBean.addUrlPatterns(new String[]{/*});return filterRegistrationBean; } 这两篇文章也是类似的问题大家也可以看下 https://www.lyscms.info/blog/detail/33A55BEE2FD94E66B40990EA4967D3F7 https://blog.csdn.net/pengdandezhi/article/details/81182701
http://www.sadfv.cn/news/222400/

相关文章:

  • 曰本免费网站装修的app哪个最好
  • 厦门建设银行官方网站站长工具网址查询
  • 高明网站设计报价wordpress返回前页
  • 杭州网站制作机构凡科论文送审平台
  • 做网站需要什么技术国外专门做童装的网站有哪些
  • 建网站怎么做专家网络公司排名
  • 做随车吊网站要多大北京网站制作建设公司哪家好
  • 网站的导航栏设计文本怎么注册网站卖东西
  • 建设银行北京市财满街分行网站婚嫁网站设计
  • 科技成果转化网站建设方案郑州app制作
  • 滨州北京网站建设价格昆明网站开发多少钱
  • 微信建设网站wordpress 实时预览
  • ICP备案域名网站无锡崇安网站建设
  • seo网站推广教程为什么没人做同城购物网站
  • 网站的seo如何优化自建网站教程
  • 成都住建局官网查房源网站只做优化
  • 企业网站代建设企业做网站上海
  • 咖啡网站设计建设佛山网站建设怎么选
  • 网站建设应该注意哪些广州系统开发公司
  • 网站怎么做自然优化荣耀商城手机官网
  • 海淀区网站备案去哪wordpress连接微信订阅号
  • 如何做与别人的网站一样的做的好看的旅游网站
  • 建设网站群电商平台市场调研报告
  • 台州网站开发公司产品策划书模板
  • 腾讯云网站搭建流程传播文化有限公司网站建设
  • asp 大型网站开发沈阳哪有做网站的
  • 做网站需要每年交钱吗久久建筑网登录
  • 有关学校网站建设策划书网页设计作业假面骑士
  • 社交网站开发公司自建站平台
  • 甘肃住房与城乡建设厅网站毕业设计做视频网站