自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr孔先森

人生路莫慌张

  • 博客(8)
  • 资源 (12)
  • 收藏
  • 关注

原创 Hessian源码分析之设计模式篇(八)

Hessian源码已经分析完了,在Hessian中主要使用到了两个设计模式,一个是策略模式,一个是模板方法模式,还有在Hessian中使用到了递归我们先来看看策略模式在Hessian中向流中写数据都是通过Serializer接口的writeObject方法来实现的,而根据写出的对象的不同对应着很多的具体的实现类,类图如下(只画出了部分实现类)因为对于

2017-07-30 14:27:55 683

原创 Hessian源码剖析(七)

本篇博客我们来看一下Hessian的server端是如何实现的,首先来看一下Server端Hessian的配置        下面是web.xml中的一段配置(web.xml文件是web应用特有的文件,Hessian的server端需要集成在web应用下,如果想在非web应用中使用Hessian的server端需要在Hessian的基础上进行二次开发),servlet和servlet-mapp

2017-07-30 13:35:59 631

原创 Hessian序列化对象之CollectionSerializer(六)

在Hessian中所有的集合类型都是通过CollectionSerializer对象来进行的序列化,为什么是所有的集合类型呢,让我们看一下具体的代码段,该代码段是SerializerFactory类的loadSerializer方法中的一段代码,该方法的具体功能在前面的博客中有详细说明,loadSerializer()方法负责根据调用远程方法的参数的类型选取对应的序列化对象我们知道Collection是所有集合类型的超接口,所以在Hessian中所有的集合类型对应的序列化对象都是CollectionSer

2017-07-27 00:47:22 1335

原创 Hessian序列化对象之BasicSerializer(五)

在静态初始化块中调用静态方法addBasic()来初始化对应关系,addBasic代码如下,类的基本名称和序列化对象的关系被放到了_staticSerializerMap中(注意调用int的getName方法的返回值为int,而调用Integer方法的返回值为java.lang.Integer,这两者是不一样的),而_staticDeserializerMap和_staticClassNameMap是反序列化相关的,后面博客讲到反序列化时再详细说明

2017-07-26 01:20:30 1158

原创 Hessian源码解析(四)

上篇博客我们说了call()方法,这次我们来展开讨论,call()方法是AbstractHessianOutput中的方法,该方法使用了模板方法设计模式,什么是模板方法设计模式?举个例子:我们将使用电脑分为3步。打开电脑,使用,关闭电脑我们看看在这三步里那几步具有共性,那几步在不同的人身上有不同的体现第一步:打开电脑,毫无疑问所有人在使用电脑前都要打开电脑第二步:使用,不同的人

2017-07-26 00:01:36 526

原创 Hessian源码剖析(三)

上篇博文我们分析了一个远程调用的过程,但是没有分析具体的细节,这篇文章我们来分析一下远程调用请求的过程protected HessianConnection sendRequest(String methodName, Object []args) throws IOException { HessianConnection conn = null; conn =

2017-07-25 00:46:17 347

原创 Hessian源码剖析(二)

创建远程代理对象 通过将远程的将要调用的方法的class对象和该对象所在的远程的路径create()方法会创建一个代理对象,一旦获得了代理对象后我们就可以像调用一个本地方法那样去调用一个远程的方法。java动态代理相关的内容不在本系列博客的讨论范围之内(不懂java动态代理不会影响我们分析Hessian源码),理解了代理对象是如何将本地方法调用传输到了server端对我们理解Hessian框架是至关重要的。下面我们来看看HessianProxyFactory是如何帮助我们创建代理对象的。

2017-07-22 23:01:21 454

原创 Hessian源码剖析(一)

在剖析Hessian源码之前我们首先来梳理一下Hessian解决了什么问题,能在哪些场景中使用,解决的问题中有哪些是难点,哪些是我们应该重点关注的一、Hessian解决了什么问题     Hessian是一个rpc框架,它实现了远程调用的功能,Hessian替我们封装了远程调用的复杂性,使我们可以使用接近于调用本地方法的方式来调用远程对象二、Hessian在哪些场景使用

2017-07-19 00:24:49 422

JAVA解惑(布洛赫)

Java解惑(布洛赫)

2017-07-26

mina编解码器Demo

该压缩包中有两个文件夹mina_server和minaclient,先启动mina_server,然后启动minaclient即可运行

2016-04-23

Tomcat权威指南

tomcat权威指南,深入了解tomcat原理

2016-03-17

protobuf编译器+运行时jar

资源包含32位Linux/64位Linux/32位Windows/64位Windows的编译器,和运行时的jar包protobuf-java-2.6.1.jar

2016-03-17

mina官方中文参考手册

本书非常详细的阐述了mina框架的工作原理,对想初步了解mina框架的人有很大的帮助

2014-08-26

深入Java虚拟机

本书讲述了Java虚拟机——运行所以Java程序的抽象计算机,还讲解了几种与虚拟机密切相关的核心Java API

2014-01-10

Java与模式

本书是一本讲解设计原则以及最为常见的设计模式的实用教材。

2014-01-10

全国大学生电子设计竞赛系统设计+黄智伟编....pdf

权威电赛指导,想要参加电赛的人可以看看啊,很实用的

2013-07-29

空空如也

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

TA关注的人

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