说句实话,本人基本上没用过Structuremap,但是这次居然开始看源码了,不得不为自己点个赞.Structuremap有很多的类,其中有一个叫做Widget的概念.那么什么是Widget呢?要明白什么是Widget,首先必须明白什么是Registry.而Registry又和Structuremap里面的Graph有着千丝万缕的联系.由于自己也才开始接触源码,所以可能有误导大家的地方,大家看看就好,不可盲目相信我说的,好我们先来看看下面这个类. public class MyRegistry…
转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17:13:14 在学习数据结构时,有一个重要的知识点就是链表.对于链表的一些基本操作,它的最好学习资料就是内核中的list.h头文件,内核中大量的使用链表,都是基于此文件的,下面来仔细分析它: (一) 结构体的定义 首先需要明确的一点是,在数据结构书中,大部分的链表定义是这样的(双向链表): type…
转自:http://blog.chinaunix.net/uid-30254565-id-5637598.html linux内核中链表代码分析---list.h头文件分析(二) 16年2月28日16:59:55 分析完container_of()宏以后,继续分析list.h文件: (1)list_entry 它就是一个container_of宏,都是得到ptr所指地址的这个结构体的首地址 #define list_entry(ptr, type, member) \ container_of(…
性能分析之-- JAVA Thread Dump 分析综述       一.Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工具.每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Java虚拟机打印的thread dump略有不同,但是大多都提供了当前活动线程的快照,及JVM中所有Java线程的堆栈跟踪信息,堆栈信息一般包含完整的类名及所执行的方法,如果可能的话还有源代码的行数.…
首先,我们还是从DispatcherServlet.doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception方法开始,看看这个牛逼的ModelAndView是怎么开始的,又是怎么结束的: protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exceptio…
从上一篇 SpringMVC源码分析(1) 中我们了解到在DispatcherServlet.doDispatch方法中会通过 mv = ha.handle(processedRequest, response, mappedHandler.getHandler()) 这样的方式来执行request的handler方法. 先来分析一下ha.handle方法的调用过程:HandlerAdapter接口有一个抽象实现类AbstractHandlerMethodAdapter,在该抽象类中通过具体方法…
Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilter的dofilter开始.dofilter包含了对http的各个请求的操作.Solr的查询方式有很多,比如q,fq等,本章只关注select和q.页面下发的查询请求如下:http://localhost:8080/solr/test/select?q=code%3A%E8%BE%BD*+AND+l…
目录 一.Channel 类图 二.begin 和 close 是什么 2.1 AbstractInterruptibleChannel 中的 begin 和 close 2.2 Selector 中的 begin 和 end 三.Channel 注册 3.1 AbstractSelectableChannel 与 Channel 注册相关属性 3.2 register 方法 3.3 SelectionKey.interestOps 事件注册 四.Channel.accept 五.Channel…
目录 一.BIO 最简使用姿势 二.connect 方法 2.1 Socket.connect 方法 2.2 AbstractPlainSocketImpl.connect 方法 2.3 DualStackPlainSocketImpl.socketConnect 方法 三.SocketInputStream 3.1 构造方法 3.2 read 方法 四.SocketInputStream NIO 源码分析(02-2) BIO 源码分析 Socket Netty 系列目录(https://www…
目录 一.BIO 最简使用姿势 二.ServerSocket 源码分析 2.1 相关类图 2.2 主要属性 2.3 构造函数 2.4 bind 方法 2.5 accept 方法 2.6 总结 NIO 源码分析(02-1) BIO 源码分析 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 一.BIO 最简使用姿势 (1) JDK BIO 启动服务典型场景 // 1. 绑定端口 ServerSocket serverSock…