6、接收请求
摘要:在第二小节中我们分析到,父通道接收请求之后NioServerSocketChannel#doReadMessage protected int io.netty.channel.socket.nio.NioServerSocketChannel#doReadMessages(List<Object>
阅读全文
8、Netty的对象池
摘要:一、什么是对象池? 顾名思义,就是有一个池子装着一群对象。我们需要对象的时候就从池子中取一个出来,用完之后就把对象放回池子中去。这样可以复用对象并且减少创建一个对象的开销,也可以 避免申请对象太多导致的频繁gc。从设计模式上来讲,它是一种享元模式。 二、netty的对象池 netty为了避免过多的创
阅读全文
14、ScheduledThreadPoolExecutor
摘要:一、前言 ScheduledThreadPoolExecutor是基于ThreadPoolExecutor实现的,在学习ScheduledThreadPoolExecutor时,请先移步到第11节学习ThreadPoolExecutor相关的知识 二、基础 2.1 类图 ThreadPoolExec
阅读全文
2、TreeMap
摘要:一、简介 TreeMap是一个有序的Map,它直接由红黑树构成,所以学习 TreeMap只要学会红黑树就可以了,下面是TreeMap的类图 Map:定义基本的增删除改查操作AbstractMap:模板方法,实现了一些基本方法SortedMap:从名字上来看就知道这是一个有序的map,它所定义的接口方
阅读全文
10、http的解析
摘要:分析tomcat对http的解析,我们还是要从tomcat接收到请求开始,我们可以通过浏览器直接请求一下,然后打断点,调试一下。 首先说明,一下分析的是NIO类型的socket处理,大致类图如下: org.apache.tomcat.util.net.NioEndpoint.Acceptor 其ru
阅读全文
2、容器的刷新
摘要:上一节分析了父容器(ClasspathXmlApplicationContext)的加载,其加载的配置文件可以在web.xml中配置,但是并没有仔细的去研究父容器的创建的过程,那是因为父容器的创建与子容器的创建基本一致。本节将分析ApplicationContext与BeanFactory的刷新过程
阅读全文
1、dubbo配置标签的解析
摘要:本源码版本为2.6.7 比如有以下配置 <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="hello-world-app" /> <!-- 使用multicast广播注册中心暴露服务地址 --> <dubbo:registry address="m
阅读全文