摘要:
1 bash: ps: command not found apt-get update && apt-get install procps 2 bash: ll: command not found echo "alias ll='ls -rltha'" >> ~/.bashrc && sourc 阅读全文
摘要:
1 前言 前面分析了 Spring MVC 的创建过程,本章分析Spring MVC 是怎么处理请求的。我们这里分两步:首先分析 HtpServletBean、FrameworkServlet 和 DispatcherServlet 这三个 Servlet 的处理过程,这样大家可以明白从Servle 阅读全文
摘要:
1 前言 本章将分析SpringMVC自身的创建过程。首先分析SpringMVC的整体结构,然后具体分析每一层的创建过程。 2 整体结构介绍 SpringMVC中核心Servlet的继承结构如图所示: 可以看到在Servlet的继承结构中一共有5个类,GenericServlet 和HttpServ 阅读全文
摘要:
1 前言 这节我们主要讲解下我们平时使用的 Synchronized,它的使用大家应该并不陌生。我们知道 Java 中的锁分为内置锁和显示锁,Synchronized 就是我们的内置锁,内置可以理解为我们只需要标记即可,加锁释放啥的JVM都帮我们做了,那么我们这节就好好来看看这个关键字。 另外我们的 阅读全文
摘要:
1 前言 Java 本身是面向 OOP 编程的,我们代码中创建的对象经过编译装载进我们的 JVM 中,那么我们的实例对象在 JVM 中具体表现的结构是什么样的呢,就是我们这节要看的东西。 2 工具 在了解之前我们要看到实际的东西,就是我们可能知道有对象头、实例数据、对齐,但是这毕竟是概念,我们怎么看 阅读全文
摘要:
1 前言 大家经常看源码会发现这个关键字,那么我们这节我们讲一下 transient 关键字,先看看它的的用法和作用: 用法:只能用于修饰成员变量 作用:Java 的 Serilizable 提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用序列化机制来保存它, 阅读全文
摘要:
1 前言 这节我们自己动手感受一下 HTTP的东西,我们知道 HTTP 协议是在应用层解析内容的,只需要按照它的报文的格式封装和解析数据就可以了,具体的传输还是使用的 Socket,我们基于上节的NIO Socket自己做一个简单的实现了HTTP协议的例子。 2 源码分析 因为HTTP 协议是在接收 阅读全文
摘要:
1 前言 本节介绍Java 中 Socket 的用法,Java 中的 Socket 可以分为普通 Socket 和 NioSocket 两种,来感受下两者的使用。 2 普通 Socket 的用法 Java 中的网络通信是通过 Socket实现的,Socket分为 ServerSocket和 Sock 阅读全文
摘要:
1 前言 Connector用于接收请求并将请求封装成 Request 和 Response 来具体处理,最底层是使用Socket 来进行连接的,Request 和 Response 是按照HTTP 协议来封装的,所以 Connector 同时实现了TCP/IP协议和HTTP 协议,Request和 阅读全文
摘要:
1 前言 上节讲了Container 自身的创建过程,Container处理请求是使用 Pipeline-Value管道来处理的,本节就详细分析一下 Pipeline-Value 管道。首先介绍它的处理模式,然后分析其实现方法。 2 Pipeline-Value处理模式 Pipeline-Value 阅读全文