自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (3)
  • 收藏
  • 关注

原创 SpringMVC源码解析七(初始化过程解析)

在SpringMVC中处理请求的核心类是DispatcherServlet; SpringMVC在DispatcherServlet类的doDispatch()中维护着请求处理流程的主要逻辑DispatcherServlet的继承关系图:SpringMVC初始化的触发点:SpringMVC的初始化是从HttpServletBean#init()开始的;Tomcat在启动时最终会...

2019-12-26 19:30:37 750 1

原创 SpringMVC源码解析六(ModelAndView解析)

在上一篇博客中解析到在InvocableHandlerMethod#doInvoke()中通过反射执行处理方法, 返回值为ModelAndView实例InvocableHandlerMethod#doInvoke()方法调用链:在RequestMappingHandlerAdapter#invokeHandlerMethod()方法中主要完成了两件事:执行处理器方法(Handle...

2019-12-26 11:12:47 994

原创 SpringMVC源码解析五(HandlerMethod执行过程解析)

在获取HandlerMethodAdapter适配器之后, 调用适配器的handle()方法执行处理器, 也就是Control类中我们编写的处理方法AbstractHandlerMethodAdapter#handle()方法实现:@Override@Nullablepublic final ModelAndView handle(HttpServletRequest requ...

2019-12-25 19:18:12 1031

原创 SpringMVC源码解析四(处理适配器HandlerAdapter的解析)

HandlerAdapter继承关系图:DispatcherServlet#getHandlerAdapter()方法实现:protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException { if (this.handlerAdapters != null) { ...

2019-12-24 10:39:28 850

原创 SpringMVC源码解析三(处理映射器HandlerMapping的解析)

HandlerMapping继承关系图:1.BeanNameUrlHandlerMapping配置文件中配置controller的bean,且bean的id必须以“/”开头,id就是controller可以处理的url<bean id = "/hello" class="com.liyao.controller.HelloController"/>2.Simple...

2019-12-23 17:00:58 820

原创 SpringMVC源码解析二(请求过程解析)

当服务器接收到从浏览器发送的一个请求后, 首先进入HttpServlet#service()方法中, 想要了解请求进入service()方法之前的逻辑请看这篇博客:Tomcat源码解析六(Http请求过程解析_基于NIO)HttpServlet#service()方法实现:@Overridepublic void service(ServletRequest req, Servle...

2019-12-23 15:55:30 643

原创 SpringMVC源码解析一(在Spring源码项目中搭建SpringMVC源码模块)

1.在Spring源码项目中右键,新建一个Module模块, 在弹窗中选择Gradle, 并且勾选Java和Web2. 选择根目录并输入ArtifactId,点击确定3. 项目构建 3.1 配置build.gradleplugins { id 'java' id 'war'}group 'org.springframework'version...

2019-12-19 11:20:27 1249

原创 Mybatis源码解析三(模拟Mybatis)

在阅读一遍源码后, 决定根据自己的理解模拟一下mybatis先对mybatis的整个流程进行梳理:分析:创建SqlSessionFactory; mybatis首先会去解析configuration.xml配置文件, 在解析这个配置文件时会对一些配置进行初始化, 例如数据源, mapper文件等; 这里要注意的时在解析mapper文件时, 对根据接口路径生成对应的MapperP...

2019-12-16 18:37:08 309

原创 Mybatis源码解析二(请求处理过程解析)

测试示例:package com.lic.ibatis.test;import com.lic.ibatis.dao.UserMapper;import com.lic.ibatis.entity.User;import org.apache.ibatis.binding.MapperProxy;import org.apache.ibatis.io.Resources;imp...

2019-12-12 18:41:45 276

原创 Mybatis源码解析一(SqlSessionFactory和SqlSession的获取)

一、SqlSessionFactorySqlSessionFactory是MyBatis的关键对象, 它是个单个数据库映射关系经过编译后的内存镜像; SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得; SqlSessionFactoryBuilder从XML配置文件或一个预先定制的Configuration的实例构建出SqlS...

2019-12-10 18:30:17 1859

原创 Tomcat源码解析六(Http请求过程解析[基于NIO]_连接器解析过程)

一、启动线程接收客户端请求在NioEndpoint的startInternal()方法中启动Acceptor线程, 开始接收客户端请求NioEndpoint#startInternal()方法实现: @Override public void startInternal() throws Exception { if (!running) { ...

2019-12-08 21:07:20 651

原创 Tomcat源码解析五(容器的启动过程解析)

目录1. 逻辑分析2. 源码分析2.1 引擎启动2.2 启动Host2.2.1 初始化Host2.2.2 启动Host2.2.3 Host生命周期监听2.2.4 部署webApps2.2.5 创建Context2.3 触发启动Context2.4 触发Wrapper初始化2.4.1 启动Wrapper2.4.2 初始化"启动时加载"的Servl...

2019-12-07 14:37:13 538

原创 Tomcat源码解析四(连接器启动过程解析)

一、逻辑分析:连接器中有三个核心组件:Endpoint、Processor 和 Adapter, 其中Endpoint 和 Processor 放在一起抽象成了 ProtocolHandler 组件, 关系图如下:EndpointEndpoint 是通信端点,即通信监听的接口,是具体的 Socket 接收和发送处理器,是对传输层的抽象,因此 Endpoint 是用来实现 TCP/...

2019-12-06 15:35:42 365

原创 Tomcat源码解析三(Tomcat启动过程解析)

Tomcat初始化以及启动流程图:在BootStrap的main方法中调用Bootstrap的start()方法1. Bootstrap#start()方法实现public void start() throws Exception { if( catalinaDaemon==null ) init(); /** ...

2019-12-06 09:03:23 284

原创 Java_IO模型

目录概念一、同步阻塞IO二、同步非阻塞IO三、IO多路复用四、异步IO五、信号驱动式IO各种I/O模型的比较概念I/O:就是计算机内存与外部设备之间拷贝数据的过程。我们知道 CPU 访问内存的速度远远高于外部设备,因此 CPU 是先把外部设备的数据读到内存里,然后再进行处理。请考虑一下这个场景,当你的程序通过 CPU 向外部设备发出一个读指令时,数据从外部...

2019-12-04 16:02:50 261

原创 自定义Tomcat

一、Tomcat_v1Tomcat服务器本质上就是一个 Server的程序,所以这里我们先写一个Server的程序和Socket程序,先完成最基本的通讯功能Server.java:package com.tomcat_v1.mySocket_v1;import java.io.IOException;import java.io.InputStream;import java...

2019-12-01 19:48:14 1525

JVM指令集.zip

在学习JVM时.指令集必不可少; 该资源有word和pdf两种模式

2019-07-22

spring4.2.4源码

Spring_4.2.4源码, 其中IOC和AOP模块已经编译过,可以直接导入ecplise使用, 并且这两部分的源码里面是做的有详细笔记的! ! ! 是可以辅助理解源码的

2019-04-14

hadoop-2.8.1-win-x64-bin(winutils)

windows平台下开发时所需的执行文件. 基于hadoop2.8.1版源码,日期20180605,编译的是win平台,Release,x64.

2018-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除