笔者在之前已经写了一系列的关于RestTemplate的文章,如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换 精讲RestTemplate第3篇-GET请求使用方法详解 精讲RestTemplate第4篇-POST请求方法使用详解 精讲RestTemplate第5篇-DELETE.PUT等请求方法使用详解 精讲RestTemplate第6篇-文件上传下载与大文件流式下载 精讲RestT…
本文是精讲响应式WebClient第2篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 在上一篇文章为大家介绍了响应式IO模型和WebClient的基本用法.本节来继续深入的为大家介绍:如何使用WebClient作为Http客户端发送GET请求与进行响应结果的接收. 一.block()阻塞式获取响应结果 WebClient客户端既支持同步异步.阻塞与非阻塞IO,我们先来为大家介绍一下同步阻塞式的编程方式.即:在请求发送之后使用block()方法,阻…
本文是精讲响应式WebClient第3篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解 一.RESTful风格与HTTP method 熟悉RESTful风格的朋友,应该了解RESTful风格API使用HTTP method表达对资源的操作. 常用HTTP方法 RESTful风格语义(操作) GET 查询.获取数据 POST 新增.提交数据 DELETE 删除数据 PUT 更新…
本文是精讲响应式WebClient第4篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解 精讲响应式WebClient第3篇-POST.DELETE.PUT方法使用 WebClient是从Spring 5开始提供的一个HTTP客户端库,为了使用WebClient进行文件上传和下载,需要我们先编写服务端的支持文件上传和下载的程序.请参考我之前写的一篇文章:SpringBoot实现本…
本文是精讲响应式WebClient第5篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解 精讲响应式WebClient第3篇-POST.DELETE.PUT方法使用 精讲响应式WebClient第4篇-文件上传与下载 本文来为大家介绍一下,当WebClient请求发生异常的时候,该如何处理.为了讲解异常处理,我们需要先制造出异常,所以我们先为大家介绍:请求超时时长的设置. 一.请…
本文是精讲响应式WebClient第6篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解 精讲响应式WebClient第3篇-POST.DELETE.PUT方法使用 精讲响应式WebClient第4篇-文件上传与下载 精讲响应式WebClient第5篇-请求超时设置与异常处理 在上一篇我们为大家介绍了WebClient的异常处理方法,我们可以对指定的异常进行处理,也可以分类处理4…
这个章节的内容是关于IO的概念,谈一谈什么是 阻塞IO 非阻塞IO 同步IO 异步IO.以下摘要是我对这四种IO的一个形象理解. 场景是去去银行办理业务.节点有三个,1)到银行提交申请:2)取号:3)办理业务:4)结束拿回资料 阻塞IO:个人到银行,拿号排队,一直等到叫号,提交材料,然后等待柜员办理,办理结束拿回材料,事件结束. 非阻塞IO:个人到银行,拿号以后,不在银行一直等待,而是出去遛弯或者做别的事,定时回银行查看叫号情况,直到号码轮到自己,然后后续过程同阻塞IO一样. IO多路复用:请了…
阻塞IO:socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会返回. 非阻塞IO:非阻塞模式下无论操作是否完成都会立刻返回,需要通过其他方式来判断具体操作是否成功. 两者区别: 所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待 状态, 直到有东西可读或者可写为止. 对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不会等待 . 一种常用做法是:每建立一个Socket连接时,同时创建一个新线程对…
NIO操作过程 非阻塞读/写操作 读-- 从通道读取数据到buffer,同时可以继续做别的事情,但数据都到buffer之后,线程再继续处理数据 写-- 一个线程请求写入一些数据到某通道,但不需要等待它完全写入,这个线程可以同时去做别的事情 Buffer(缓冲区) IO 面向流(Stream oriented),而NIO 面向缓冲区(Buffer oriented) Buffer是一个对象,包含一些要写入或者要读出的数据.在NIO类库中假如Buffer对象,体现了新库与原I/O的一个重要区别.在面…
本文是本系列文章的第七篇,前6篇访问地址如下: 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总结 小书MybatisPlus第3篇-自定义SQL 小书MybatisPlus第4篇-表格分页与下拉分页查询 小书MybatisPlus第5篇-Active Record模式精讲 小书MybatisPlus第6篇-主键生成策略精讲 一.代码生成器的基础实现原理 相信大部分的开发者都使用过或者听说过"模板引擎",…