9 _YourBatman

已隐藏 研发工程师

也许当我老了,也一样写代码。不为别的,只为爱好

等级
TA的排名 8k+

web九大组件之---RequestMappingHandlerAdapter详尽解析【享学Spring MVC】

每篇一句在没有充分的知识作为前提的情况下,即使行了万里路,也不过是邮差而已。前言上篇文章介绍了HandlerAdapter适配器的三种实现方式,分别实现了对非主流的三种控制器的适配,内容也都非常的简单。但由于这三种控制器在现在的实际应用中几乎不会用到,所以不太具有很强的实践意义。本文将要讲述的是它最最最最为重要的一个实现类:RequestMappingHandlerAdapter。它不...

2019-10-07 11:05:32

@ExceptionHandler or HandlerExceptionResolver?如何优雅处理全局异常?【享学Spring MVC】

每篇一句你现在多学一样本事,将来就少说一句求人的话前言阅读上文,了解到了可以通过自定义HandlerExceptionResolver实现来处理程序异常,当然SpringMVC也内置了一些实现来对异常处理进行支持。但是作为新时代的程序员,我估计已经很少人知道HandlerExceptionResolver这个异常处理器接口(更有甚者连ModelAndView都没听说过也大有人在啊),虽...

2019-10-07 11:03:55

web九大组件之---HandlerExceptionResolver异常处理器使用详解【享学Spring MVC】

前言任何程序都会有异常。无论你是做什么项目,对异常的处理都是非常有必要的,尤其是web项目,因为它一般直接面向用户,所以良好的异常处理就显得格外的重要。SpringMVC作为如此优秀的web层框架,自然考虑到了这一点,因此它从首个版本便提供了异常处理器HandlerExceptionResolver,这便是本文的主要议题。Java异常体系简介Java相较于其它大多数语言提供了一套非常完善的...

2019-10-01 13:33:53

掌握@ControllerAdvice配合RequestBodyAdvice/ResponseBodyAdvice使用,让你的选择不仅仅只有拦截器【享学Spring MVC】

前言我们在实际的项目开发中,肯定会有这样的需求:请求时记录请求日志,返回时自动记录返回日志。这些都是与业务没关系的花边功能,若你全都写在Controller的方法内部,那将造成大量的代码重复且严重干扰了业务代码的可读性。可能你第一反应想到的是使用SpringMVC的拦截器HandlerInterceptor来做,此方案整体上还算优雅的,相信大部分公司的同学也都是这么来干的。那么本文就介绍一种...

2019-09-25 23:42:08

web九大组件之---HandlerAdapter适配器模式实践源码分析【享学Spring MVC】

前言在分析过SpringMVC最重要的组件:HandlerMapping,本文将继续分析和它息息相关的另外一个组件:HandlerAdapterHandlerAdapter的作用:因为SpringMVC中的Handler可以是任意的形式,只要能处理请求就ok,但是Servlet需要的处理方法的结构却是固定的,都是以request和response为参数的方法。如何让固定的Servlet处理...

2019-07-11 11:21:28

CORS跨域资源共享(三):@CrossOrigin/CorsFilter处理跨域请求示例及原理分析【享学Spring MVC】

通过前[两篇文章](https://fangshixiang.blog.csdn.net/article/details/101036506)做好了的铺垫和讲述,现在的你应该了解了`CORS`是怎么回事以及`SpringMVC`对它是如何支持的,我有理由相信你现在完全是有能力去解决`CORS`跨域请求问题,而不用再是两眼一抹黑了。正所谓好人做到底,送佛送到西,小伙伴一直最为关心`SpringMVC`对`CORS`的落地实操示例我还没有给出,当然还有它的处理流程原理分析,那么本文就是你最应该关注和收藏的

2019-09-22 20:04:10

CORS跨域资源共享(二):详解Spring MVC对CORS支持的相关类和API【享学Spring MVC】

前言上篇文章通过我本地模拟的实例,让大家非常清晰的看到了CORS跨域访问的一些case,那么本文将聚焦于解决方案、以及方案的原理来更深入的理解SpringMVC中到底是如何对CORS提供支持的呢?...

2019-09-19 21:10:26

CORS跨域资源共享(一):模拟跨域请求以及结果分析,理解同源策略【享学Spring MVC】

前言在我们日常的项目开发时使用AJAX,传统的Ajax请求只能获取在同一个域名下面的资源,但是HTML5打破了这个限制,允许Ajax发起跨域的请求。浏览器是可以发起跨域请求的,比如你可以外链一个外域的图片或者脚本。但是Javascript脚本是不能获取这些资源的内容的,它只能被浏览器执行或渲染。主要原因还是出于安全考虑,浏览器会限制脚本中发起的跨站请求。(同源策略,即JavaScript或Co...

2019-09-18 21:49:08

@Qualifier高级应用---按类别批量依赖注入(QualifierAnnotationAutowireCandidateResolver原理详解)【享学Spring】

QualifierAnnotationAutowireCandidateResolver详解它可以被称为@Qualifier注解的实现类,专门用于解析此注解。至于@Qualifier有什么用如何用,这里就不啰嗦了,结合上面疑问进行原理分析如下://@since2.5publicclassQualifierAnnotationAutowireCandidateResolverexte...

2019-09-16 16:03:26

为何一个@LoadBalanced注解就让RestTemplate拥有负载均衡的能力?【享学Spring Cloud】

前言在

2019-09-13 00:23:35

RestTemplate的使用和原理你都烂熟于胸了吗?【享学Spring MVC】

前言在阅读本篇之前,建议先阅读开山篇效果更佳。我们都知道的是:RestTemplate是Spring提供的用于访问Rest服务的客户端,它提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。因此对于那些在Spring环境下还在使用HttpClient(或其它Client)的同学,今儿看完本文后,强烈建议你切换到RestTemplate。RestTemplate简化了与h...

2019-09-12 00:30:45

RestTemplate组件:ClientHttpRequestFactory、ClientHttpRequestInterceptor、ResponseExtractor【享学Spring MVC】

前言本文为深入了解Spring提供的Rest调用客户端RestTemplate做准备,对和它相关的周边类做一个打点。因为单词相似,请注意区分RestTemplate和RedisTemplate哦~ClientHttpRequestFactory它是个函数式接口,用于根据URI和HttpMethod创建出一个ClientHttpRequest来~说明:ClientHttpRequest...

2019-09-10 21:39:00

从原理层面掌握@InitBinder的使用【享学Spring MVC】

前言在使用SpringMVC框架的项目中,相信小伙伴们经常会遇到一些前端给后端传值的问题,比如最经典的问题是:Date类型(LocalDate类型等等)前端如何传,后端可以用Date类型接收呢?当然关于Date类型的传递,业界也有两个通用的解决方案:使用时间戳使用String字符串接收但有时候使用这两种方式,总感觉有不方便的地方,不够面向对象。那么本文就再介绍一个黑科技:使用@In...

2019-09-03 23:17:03

你知道@RequestMapping的name属性有什么用吗?带你了解URI Builder模式(UriComponents/UriComponentsBuilder)【享学Spring MVC】

前言你知道@RequestMapping的name属性有什么用吗?

2019-09-03 23:20:51

HandlerMethodArgumentResolver(四):自定参数解析器处理特定场景需求,介绍PropertyNamingStrategy的使用【享学Spring MVC】

前言前面通过三篇文章介绍了HandlerMethodArgumentResolver这个参数解析器以及它的所有内置实现,相信看过的小伙伴对它的加载、初始化、处理原理等等已能够做到了心中有数了。SpringMVC内置注册了灰常多的处理器给我们的使用,不客气说几乎100%的case我们都是足够用了的。但既然我们已经理解到了HandlerMethodArgumentResolver它深层的作用原理...

2019-09-02 14:54:46

ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】

前言写这篇文章非我本意,因为我觉得对如题的这个几个类的了解还是比较基础且简单的一块内容,直到有超过两个同学问过我一些问题的时候:通过聊天发现小伙伴都听说过这几个类,但对于他们的使用、功能定位是傻傻分不清楚的(因为名字上都有很多的相似之处)。那么书写本文就是当作一篇科普类文章记录下来,已经非常熟悉小伙伴就没太大必要往下继续阅读本文内容了,因为这块不算难的(当然我只是建议而已~)。ModelAn...

2019-08-28 23:13:40

HandlerMethodArgumentResolver(三):基于HttpMessageConverter消息转换器的参数解析器【享学Spring MVC】

前言第四类:基于ContentType利用HttpMessageConverter将输入流转换成对应的参数MvcUriComponentsBuilder解析若多个都生效会覆盖吗???值方面会被赋值多次吗?...

2019-08-27 20:41:03

ContentNegotiation内容协商机制(三)---在视图View上的应用:ContentNegotiatingViewResolver深度解析【享学Spring MVC】

SpringMVC内容协商配置ContentNegotiationConfigurerContentNegotiationManagerFactoryBean使用内容协商实现多视图例ContentNegotiatingViewResolver内容协商的应用ResourceHttpRequestHandlerExceptionHandlerExceptionResolverHttpE...

2019-08-26 21:55:57

ContentNegotiation内容协商机制(二)---Spring MVC内容协商实现原理及自定义配置【享学Spring MVC】

前言上文介绍了Http内容协商的一些概念,以及SpringMVC对此实现的4种方式使用介绍。那么本文基于自定义扩展的需求,先从步骤、原理层面理解,然后提供一个实力来扩展内容协商的方式。ContentNegotiationStrategy在说到SpringMVC支持的协商机制的时候,就不得不提这个策略接口。从上文我们知道SpringMVC它支持了4种不同的协商机制,它都和此策略接...

2019-08-26 15:59:46

ContentNegotiation内容协商机制(一)---Spring MVC内置支持的4种内容协商方式【享学Spring MVC】

前言你在使用SpringBoot过程中应该遇到这样一个现象:同一个接口,若你用rest访问(例如postman)报错,它返回给你的是一个json串;但若你用浏览器访问,它返回给你的是一段html交给浏览器渲染出来,比如下面例子:Http报头Accept与Content-Type的区别content-type指请求消息头的中请求消息数据的格式(请求头和响应头中都可以设置)http规范...

2019-08-25 17:44:12

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获取
  • 新人勋章
    新人勋章
    用户发布第一条Blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。