荒野孤鹰

广阔天地大有作为

Jetty源码阅读---Jetty的类加载器WebAppClassLoader

前面介绍了java中类加载的一般模型:双亲委派模型,这个模型适用于大多数类加载的场景,但对于web容器却是不适用的;这是因为servlet规范对web容器的类加载做了一些规定,简单的来说有以下几条: 1.WEB-INF/classes和WEB-INF/lib路径下的类会优先于父容器中的类加...

2018-02-04 15:49:01

阅读数 763

评论数 1

Jvm类加载机制详解---类加载器及双亲委托模型

前面介绍了类加载的几个过程,实际中这些过程大部分都是由虚拟机本身去执行的,我们没有办法去改变或影响这些过程的执行。但是虚拟机团队将类加载阶段第一步中的”通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码模块...

2018-01-31 13:07:27

阅读数 246

评论数 0

Jvm类加载机制详解--类加载的几个阶段

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机类加载机制。在Java语言中,类的加载、连接和初始化过程都是在程序运行期间完成的,这是java作为动态语言的基础。另外值得注意的是上面提到的Class文件,并...

2018-01-28 22:24:54

阅读数 2226

评论数 1

spring整合mybatis

现在很多项目都是基于Spring框架进行开发的,这种情况下如果仍然按照上面的方式来配置使用mybatis则会有很多的不方便。好在针对Spring框架mybatis也提供了配置方案,主要是通过一系列的mybatis-spring-xxx.jar来实现组合的,下面就来介绍如何在Spring项目中配置使...

2017-12-30 20:55:21

阅读数 135

评论数 0

Java 动态代理原理及其在mybatis中的应用

代理是一种基本的设计模式,代理模式的主要作用是为其他对象(被代理的对象,下面称为原对象)提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理对象既可以将客户端的请求完全转发给原对象,也可以提供一些额外或不...

2017-12-30 12:26:45

阅读数 232

评论数 0

Java Class类及反射机制

首先要分清楚Class类和关键词class的不同,虽然Class类名称上和class很相似,但两者其实没有什么关联。Class类也是一个Java类,它也可以实例化得到对象,与普通类不一样的是Class类中存储的是其它类的类型信息。而这些类型信息正是Java反射机制所需要的,Java的反射机制是由C...

2017-12-30 09:47:00

阅读数 320

评论数 0

Jetty源码分析之NIO实现的Connector:SelectChannelConnector

Connector在Jetty中是负责接收客户端请求,然后为每个请求分配一个对请求进行处理的线程,并且负责将处理完得到的响应发送给客户端。总共有两种类型的Connector,基于Socket的阻塞Connector,代表类是SocketConnector;另外就是基于非阻塞NIO的SelectCh...

2017-12-25 23:58:03

阅读数 407

评论数 0

Jetty源码分析之线程池:QueuedThreadPool

前面分析Jetty整体架构的时候介绍过Jetty的三大组件:Acceptor、Handler和ThreadPool;前两者工作的时候都是需要线程的,而所需的线程正是从ThreadPool中获取的。这篇文件就是来分析ThreadPool的一个具体实现:QueuedThreadPool。下面是它的类图...

2017-12-24 22:10:42

阅读数 1132

评论数 2

Jetty源码分析之WebAppContext

WebAppContext即Web Application ContextHandler,表示一个Web应用的上下文,是上篇文章介绍的ContextHandler的一个子类,也是实际中应用的ContextHandler。先来看下类图: 可以看到在ContextHandler和WebAppCont...

2017-12-24 13:26:27

阅读数 1262

评论数 0

Jetty源码分析之ContextHandler

ContextHandler是ScopedHandler的直接子类,继承关系比较简单就不贴类图了。 ContextHandler从名字的直观含义上来看是上下文Handler,在servlet规范中每个web应用都有一个上下文(context)的含义,其实就是对应到这里的ContextHandle...

2017-12-24 11:37:15

阅读数 428

评论数 0

mysql索引优化技巧

前面一篇文章学习了索引的基本知识以及B-TREE索引的适用范围,这一篇文章主要是讨论一些如何高效设计、使用索引的技巧,有些是通用的,有些是针对特定场景的。1.独立的列如果在查询条件中列不是独立的,及时在这个列上建立了索引,mysql也无法使用索引进行优化。所谓”独立的列”,指的是索引列不是表达式的...

2017-12-23 11:58:32

阅读数 255

评论数 0

mybatis原理解析---SqlSession运行过程(下)

继续sqlSession运行过程分析,上一篇文章讲到通过sqlSession中executor对象的query方法执行的查询,在分析这个方法的源码之前,先分析下SqlSession执行sql中用到的比较重要的几个对象。SqlSession中是通过Executor 、StatementHandler...

2017-12-23 10:34:18

阅读数 506

评论数 0

Jetty源码分析之ScopedHandler及Handler链

ScopedHandler在Jetty的Handler体系中属于比较重要的一个成员,像ContextHandler、SessionHandler、ServletHandler、WebappContext等重要组件都直接或间接的继承了ScopedHandler,所以在学习其它更具体handler之前...

2017-12-21 11:22:51

阅读数 413

评论数 0

Jetty源码分析之AbstractHandler

jetty可以说是一个基于Handler设计的Web服务器,其通过组合各种Handler实现对请求的处理。所以源码阅读部分先从Handler部分开始,而AbstractHandler是大部分Handler都继承了的父类,因此先了解它的源码。下面先来看下AbstractHandler的类图,了解下它...

2017-12-19 22:44:50

阅读数 462

评论数 0

mybatis原理解析---SqlSession运行过程(上)

sqlSession代表与数据库的一次会话,在这次会话中可以多次执行查询等sql操作。从前面可以看到SqlSession对象是从SqlSessionFactory对象中获得的。sqlSession本身就定义了一系列的update select delete insert等方法,在旧版本的mybat...

2017-12-19 21:41:32

阅读数 545

评论数 0

Jetty服务器启动过程分析

先大致看一下外部启动一个Jetty服务器的过程,然后再展开分析 1.java start.jar进行启动,解析命令行参数并读取start.ini中配置的所有参数。 2.解析start.config确定jetty模块的类路径并确定首先执行的MainClass。 3.可以选择是否另起一个进程来,...

2017-12-18 22:03:49

阅读数 644

评论数 0

Jetty架构分析

最新的jetty版本是jetty 9,但下面这个jetty源码阅读系列都是基于jetty8进行的,所以可能有些地方和最新的源码对不上。 jetty服务器由一个或多个connector核心组件以及一系列handler组件和一个线程池组成。结构图如下: 三个组件的职责:connector负责接收客...

2017-12-17 23:29:36

阅读数 287

评论数 0

mybatis原理解析---配置文件读取及SqlSessionFactory构建

mybatis的运行分为两个部分,第一个部分是读取配置文件并缓存到Configuration对象,用以创建SqlSessionFactory对象。第二部分是sqlSession运行过程。这篇文章主要讨论如何解析配置文件得到Configuration对象,以及Configuration对象中一些重要...

2017-12-16 15:47:48

阅读数 1635

评论数 0

mysql索引详解

索引(在mysql中也叫键(key))是数据库用来快速找到记录的一种数据结构。索引对于良好的性能非常关键,特别是当表中数据量越来越大的时候,索引对性能的影响就越来越明显了。在数据量较少并且负载较低的时候,不良的索引对性能的影响还不明显,但当数据量逐渐增大,则性能下降会越明显。 可以类比一本书的目...

2017-12-15 23:27:06

阅读数 186

评论数 0

数据库的数据类型优化

mysql支持非常多的数据类型,在设计表的时候需要精心的为每个列选择合适的数据类型以提高数据库的性能,这篇文章回顾了数据库中常用的几种数据类型,并总结了一些数据类型优化的技巧。 1.选择优化的数据类型 mysql支持非常多的数据类型,选择正确的数据类型对优化性能非常重要,下面几个原则适用于所有...

2017-12-12 23:40:26

阅读数 139

评论数 0

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