JiaHe's Blog

读万卷书,行万里路

前言

任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现:

  • Timer
  • ScheduledExecutor
  • 开源工具包 Quartz
  • 开源工具包 JCronTab

此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些使用方法。

阅读全文 »

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP, 将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。声明式事务有两种方式,一种是在配置文件(XML)中做相关的事务规则声明,另一种是基于 @Transactional 注解的方式。注释配置是目前流行的使用方式,因此本文将着重介绍基于 @Transactional 注解的事务管理。

阅读全文 »

一 什么是代理

代理其实就是一个中介,A 和 B 本来可以直连,中间插入一个 C,C 就是中介。
刚开始的时候,代理多数是帮助内网 client 访问外网 server 用的
后来出现了反向代理,"反向" 这个词在这儿的意思其实是指方向相反,即代理将来自外网客户端的请求转发到内网服务器,从外到内。

阅读全文 »

ZIP 和 GZIP 的区别

gzip 是一种文件压缩工具(或该压缩工具产生的压缩文件格式),它的设计目标是处理单个的文件。gzip 在压缩文件中的数据时使用的就是 zlib。为了保存与文件属性有关的信息,gzip 需要在压缩文件(*.gz)中保存更多的头信息内容,而 zlib 不用考虑这一点。但 gzip 只适用于单个文件,所以我们在 UNIX/Linux 上经常看到的压缩包后缀都是 *.tar.gz 或 *.tgz,也就是先用 tar 把多个文件打包成单个文件,再用 gzip 压缩的结果。

zip 只是一种数据结构,跟 rar 同类型。zip 是适用于压缩多个文件的格式(相应的工具有 PkZip 和 WinZip 等),因此,zip 文件还要进一步包含文件目录结构的信息,比 gzip 的头信息更多。但需要注意,zip 格式可采用多种压缩算法,我们常见的 zip 文件大多不是用 zlib 的算法压缩的,其压缩数据的格式与 gzip 大不一样。

阅读全文 »