背景 本文基于JDK 11,主要介绍FutureTask类中的run().get()和cancel() 方法,没有过多解析相应interface中的注释,但阅读源码时建议先阅读注释,明白方法的主要的功能,再去看源码会更快. 文中若有不正确的地方欢迎大伙留言指出,谢谢了! 1.FutureTask类图 1.1 FutureTask简介 FutureTask类图如下(使用IDEA生成).如图所示,FutureTask实现了Future接口的所有方法,并且实现了Runnable接口,其中,Runnab…
一.前言 个人感觉学习Flink其实最不应该错过的博文是Flink社区的博文系列,里面的文章是不会让人失望的.强烈安利:https://ververica.cn/developers-resources/. 本文是自己第一次尝试写源码阅读的文章,会努力将原理和源码实现流程结合起来.文中有几个点目前也是没有弄清楚,若是写在一篇博客里,时间跨度太大,但又怕后期遗忘,所以先记下来,后期进一步阅读源码后再添上,若是看到不完整版博文的看官,对不住! 文中若是写的不准确的地方欢迎留言指出. 源码系列基于Fl…
一. jwt token校验源码简析 1.1 前言 之前使用jwt签发了token,里面的头部包含了加密的方式.是否有签名等,而载荷中包含用户名.用户主键.过期时间等信息,最后的签名还使用了摘要算法进行不可逆的加密. 同时检验签名时还需进行签名的碰撞检测,判断该token是否合法.jwt提供了一个校验token的认证方法,使用时只需要CBV中进行局部身份验证配置即可.使用如下: from rest_framework_jwt.authentication import JSONWebTokenA…
学习资料:开涛的<跟我学SpringMVC.pdf> 众所周知,springMVC是比较常用的web框架,通常整合spring使用.这里抛开spring,单纯的对springMVC做一下总结. 概念 HandlerMapping:处理器映射,对请求的URL进行映射为具体的处理器(如果有拦截器也包含拦截器,会将Handler和多个HandlerInterceptor封装为HandlerExecutionChain对象) HandlerAdapter:处理器适配器,适配不同类型的处理器,如Cont…
AFNetworking基本是苹果开发中网络请求库的标配,它是一个轻量级的网络库,专门针对iOS和OS X的网络应用设计,具有模块化的架构和丰富的APIs接口,功能强大并且使用简单,深受苹果应用开发人员的喜爱. 本文主要介绍一下AFNetworking(版本:3.1.0)的模块结构.请求的执行过程.网络状态监测以及网络安全的处理等等,从而对AFNetworking的具体功能.执行过程有一个大致的了解,在实际的项目开发过程中,能够更好的进行应用. 一.结构 下面是AFNetworking的源码结构…
1.概述 Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录请求信息的日志.判断用户是否登录等. 2.简单示例 2.1.继承 HandlerInterceptorAdapter 抽象类实现一个拦截器.代码如下: public class DemoInterceptor extends HandlerInterceptorAdapter { @Override    pu…
一. 安装djangorestframework 安装的方式有以下三种,注意,模块就叫djangorestframework. 方式一:pip3 install djangorestframework 方式二:pycharm图形化界面安装 方式三:pycharm命令行下安装(会装在当前工程所用的解释器下) 二. APIView源码分析 在此强调源码分析时一定要依据属性及方法的查询顺序从底部开始查询,不要直接ctrl + 鼠标左键点过去,因为可能跳过去的是其他类中的方法.除此之外只需搞清楚源码的流…
一,前言 XXL-JOB是一个优秀的国产开源分布式任务调度平台,他有着自己的一套调度注册中心,提供了丰富的调度和阻塞策略等,这些都是可视化的操作,使用起来十分方便. 由于是国产的,所以上手还是比较快的,而且他的源码也十分优秀,因为是调试平台所以线程这一块的使用是很频繁的,特别值得学习研究. XXL-JOB一同分为两个模块,调度中心模块和执行模块.具体解释,我们copy下官网的介绍: 调度模块(调度中心): 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码.调度系统与任务解耦,提高了…
一,前言 Spring-Integration基于Spring,在应用程序中启用了轻量级消息传递,并支持通过声明式适配器与外部系统集成.这一段官网的介绍,概况了整个Integration的用途.个人感觉消息传递是真正的重点. 如上图所示,典型的生产者-消费者模式,中间通过一个特定的通道进行数据传输,说到这,是不是隐隐感觉到queue的存在.确实事实上这个所谓的通道默认就是用的 blockingqueue. Spring-Integration网上的资料是真少,再加上源码分析的是更少.关于Spri…
Glance简介 OpenStack镜像服务器是一套虚拟机镜像发现.注册.检索. glance架构图: Glance源码结构: glance/api:主要负责接收响应镜像管理命令的Restful请求,分析消息请求信息并分发其所带的命令(如新增,删除,更新等).默认绑定端口是9292. glance/registry:主要负责接收响应镜像元数据命令的Restful请求.分析消息请求信息并分发其所带的命令(如获取元数据,更新元数据等).默认绑定的端口是9191. glance/db:主要负责与数据库…