摘要: 前提 javax.crypto.Cipher,翻译为密码,其实叫做 密码器 更加合适。Cipher是JCA(Java Cryptographic Extension,Java加密扩展)的核心,提供基于多种加解密算法的加解密功能。在不了解Cipher之前,我们在完成一些需要加解密的模块的时候总是需要到阅读全文
posted @ 2018-08-15 11:43 throwable 阅读(474) 评论(0) 编辑
摘要: 前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响应)数据报文包括三个部分: 1、timestamp,long类型,时间戳。 2、data,String类型,实际的业务请求数据转化成的阅读全文
posted @ 2018-08-14 00:41 throwable 阅读(3700) 评论(5) 编辑
摘要: 前提 紧接着上一篇《通过源码浅析JDK中的资源加载》,ServiceLoader是SPI(Service Provider Interface)中的服务类加载的核心类,也就是,这篇文章先介绍ServiceLoader的使用方式,再分析它的源码。 ServiceLoader的使用 这里先列举一个经典的阅读全文
posted @ 2018-10-14 23:42 throwable 阅读(329) 评论(0) 编辑
摘要: 前提 最近在做一个基础组件项目刚好需要用到JDK中的资源加载,这里说到的资源包括类文件和其他静态资源,刚好需要重新补充一下类加载器和资源加载的相关知识,整理成一篇文章。 理解类的工作原理 这一节主要分析类加载器和双亲委派模型。 什么是类加载器 虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获阅读全文
posted @ 2018-10-14 12:31 throwable 阅读(220) 评论(0) 编辑
摘要: 前提 上一篇文章复习介绍了JDK中注解的底层实现,跟注解一样比较常用,但是底层实现比较神秘的还有枚举类型。趁着国庆假期的最后两天,把JDK中枚举的底层实现也进行一次探究。 通过例子查找本质 在探究JDK注解的底层实现的时候,因为预先参考了不少资料,所以整个过程有点"未卜先知"的意味,这里尝试用未知的阅读全文
posted @ 2018-10-06 22:45 throwable 阅读(310) 评论(0) 编辑
摘要: 前提 用Java快三年了,注解算是一个常用的类型,特别是在一些框架里面会大量使用注解做组件标识、配置或者策略。但是一直没有深入去探究JDK中的注解到底是什么,底层是怎么实现了?于是参考了一些资料,做了一次稍微详细的分析。 JDK的注解描述 参考JavaSE 8里面的 "JLS 9.6" 对注解的描述阅读全文
posted @ 2018-10-06 16:13 throwable 阅读(724) 评论(1) 编辑
摘要: HTTP协议的定义 这篇文章暂时不研究HTTP底层的TCP/IP的握手和挥手过程,只从表面的交互流程分析HTTP协议。 HTTP英文全称是Hypertext Transfer Protpcol,也就是超文本传输协议。HTTP是一个标准,定义了Web客户端如何与服务器对话以及数据如何从服务器传回到客户阅读全文
posted @ 2018-10-05 23:52 throwable 阅读(257) 评论(0) 编辑
摘要: 前提 前面的一篇文章《Java中的Internet查询》分析完了如何通过IP地址或者主机名确定主机在因特网中的地址。任意给定主机上可能会有任意多个资源,这些资源需要有标识符方便主机之间访问对方的资源,因此这篇文章深入分析一下URL和URI。 URI URI全称是Uniform Resource Id阅读全文
posted @ 2018-10-03 18:51 throwable 阅读(1098) 评论(0) 编辑
摘要: 前提 最近在项目中使用了SpringCloud,基于zuul搭建了一个提供加解密、鉴权等功能的网关服务。鉴于之前没怎么使用过Zuul,于是顺便仔细阅读了它的源码。实际上,zuul原来提供的功能是很单一的:通过一个统一的Servlet入口(ZuulServlet,或者Filter入口,使用ZuulSe阅读全文
posted @ 2018-09-15 23:41 throwable 阅读(1325) 评论(0) 编辑
摘要: 前提 在深入理解URL、URI等概念,或者学些Socket相关的知识之,有必要系统理解一下Internet相关的一些基础知识。 Internet地址 连接到Internet(因特网)的设备称为节点(node),而任意一个计算机节点称为主机(host)。每个节点或者主机都由至少一个唯一的数来标识,这称阅读全文
posted @ 2018-09-03 23:13 throwable 阅读(58) 评论(0) 编辑
摘要: 前提 javax.crypto.Cipher,翻译为密码,其实叫做 密码器 更加合适。Cipher是JCA(Java Cryptographic Extension,Java加密扩展)的核心,提供基于多种加解密算法的加解密功能。在不了解Cipher之前,我们在完成一些需要加解密的模块的时候总是需要到阅读全文
posted @ 2018-08-15 11:43 throwable 阅读(474) 评论(0) 编辑
摘要: 前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响应)数据报文包括三个部分: 1、timestamp,long类型,时间戳。 2、data,String类型,实际的业务请求数据转化成的阅读全文
posted @ 2018-08-14 00:41 throwable 阅读(3700) 评论(5) 编辑