SpringMVC流程及源码分析 前言 ​ 学了一遍SpringMVC以后,想着做一个总结,复习一下.复习写下面的总结的时候才发现,其实自己学的并不彻底.牢固.也没有学全,视频跟书本是要结合起来一起,每一位老师的视频可能提到的东西都不一致,也导致也不是很全面,书本上会讲的笔记系统.全面.同时我自己也是一个初学者,下面总结的可能并不完善.正确,希望看到的大神给我指出,在此非常感谢. 目录 SpringMVC流程及源码分析 一 .Spring核心模块 1.核心模块 2.Spring版本命名规则(补充…
1.1 Struts2请求处理 1. 一个请求在Struts2框架中的处理步骤: a) 客户端初始化一个指向Servlet容器的请求: b) 根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助(SiteMesh Plugin),主要清理当前线程的ActionContext和Dispatcher: c) 请求经过插件过滤器,如:SiteMesh.etc等过滤器: d) 请求经过核心过滤器Filte…
目录 前言 现象 源码分析 实战例子 总结 参考资料 前言 今天研究了一下tomcat上web.xml配置文件中url-pattern的问题. 这个问题其实毕业前就困扰着我,当时忙于找工作. 找到工作之后一直忙,也就没时间顾虑这个问题了. 说到底还是自己懒了,没花时间来研究. 今天看了tomcat的部分源码 了解了这个url-pattern的机制.  下面让我一一道来. tomcat的大致结构就不说了, 毕竟自己也不是特别熟悉. 有兴趣的同学请自行查看相关资料. 等有时间了我会来补充这部分的知识…
1  背景 还记得前面<Android应用setContentView与LayoutInflater加载解析机制源码分析>这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系: 看见没有,如上图中id为content的内容就是整个View树的结构,所以对每个具体View对象的操作,其实就是个递归的实现. 前面<Android触摸屏事件派发机制详解与源码分析一(View篇)>文 章的3-1小节说过Android中的任何一个布局.任何…
在django—CBV源码分析中,我们是分析的from django.views import View下的执行流程,这篇博客我们介绍django Rest Framework下的APIView的源码分析. 一.as_view() 我们还是先从URLconfig中入手,由于BookView是一个基于类的视图,所以我们将URL指向as_view()类方法 url(r'books/',views.BookView.as_view()), 此时,我们的BookView已经不是继承自django.vie…
认证 前言 用户验证用户是否合法登陆. 部分内容在DRF视图的使用及源码流程分析讲解,建议先看讲解视图的这篇文章. 使用流程 认证使用的方法流程如下: 自定义认证类,继承BaseAuthentication,并且覆写其authenticate方法.不继承BaseAuthentication也可以,但认证类中必须声明authenticate和authenticate_header两个方法. 当认证通过后应该返回两个值(一个元组),并且第一个值会传递给request.user这个属性中,第二个值将会…
目录 一.drf 整体内容 二.APIView执行流程--源码分析(难,了解) 2.1 基于APIView+JsonResponse编写接口 2.2 基于APIView+Response 写接口 2.3 APIView的执行流程 三.Request对象源码分析(难,了解) 四.序列化器介绍和快速使用(重点) 4.1 序列化类基本使用,序列化多条(使用方式类似forms组件) 4.2 序列化单条 五.反序列化(重点) 5.1 反序列化的新增 5.2 反序列化的修改 5.3 删除单条 六.完整的代码…
HashMap在JDK1.8中并发操作不会出现死循环,只会出现缺数据.测试如下: package JDKSource; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; /** * @Auther: wenbochang * @Date: 2018/8/5 11 */ public class TestHashMap { /** * NUMBER = 10,表示十个线程执行p…
本篇文章主要基于Redisson中实现的分布式锁机制继续进行展开,分析Redisson中的时间轮机制. 在前面分析的Redisson的分布式锁实现中,有一个Watch Dog机制来对锁键进行续约,代码如下: private void renewExpiration() { ExpirationEntry ee = EXPIRATION_RENEWAL_MAP.get(getEntryName()); if (ee == null) { return; } //用到了时间轮机制 Timeout t…
TaskManager接收到来自JobManager的jobGraph转换得到的TDD对象,启动了任务,在StreamInputProcessor类的processInput()方法中 通过一个while(true)中不停的拉取上游的数据,然后调用streamOperator.processElement(record)调用用户实现的方法去处理数据拉取的数据 首先先来看下这个operator对象 然后看看OneInputStreamOperator类的UML 这里所有的实现类没有全部列出,只列了…