转载

Git@OSC 项目推荐 —— 独立 Java 工具包(Voovan)

Voovan开源项目旨在提供可靠、方便、可单元测试的代码。它是一个**无任何依赖**的独立工具包,希望能够方便广大开发者快速的实现应用。

JDK支持:

  • 推荐使用 JDK1.8,懒人专用。
  • 如果仅使用 AIO 需要 JDK1.7。
  • 如果 HTTPServer 使用lambda 需要 JDK1.8,不使用 lambda 需要 JDK1.7。
  • 有能力的同学可以通过很简单几行修改使 HTTPServer 和 HTTPClient使用 NIO 那么就是 JDK1.6。

框架特点介绍:

  • 使用 JDK8 的 lambda 表达式,快速实现 HTTP/WebSocket 服务的开发。 【举个栗子】 / 【演示】
  • 异步通信框架解决粘包问题。 【举个栗子】
  • 独立无依赖的代码。
  • 源码注释丰富,方便码友学习、调试、使用。

交流QQ群:454201740

开源协议:Apache v2 License

Voovan开源项目源代码主要托管于 GitHub.

GitHub地址: https://github.com/helyho/Voovan.git

帮助文档地址: https://github.com/helyho/Voovan/wiki

Issues地址: GitHub 或者Git @osc

推荐将 Issues 提交到 GitHub,如果没有 GitHub 帐号可以直接提交到 Git@OSC

一、异步通信框架(AIO、NIO异步通信)

类似 Netty 和 MINA 的异步 Socket 通信框架.但有有所不同。

  1. 可灵活实现Socket通信粘包的支持 (代码中包含 HTTP协议,字符串换行,定长报文的粘包实现)。
  2. 支持 SSL/TLS 加密通信。
  3. 提供线程池依据系统负载情况自动动态调整。
  4. 同时支持 NIO 和 AIO 特性。
  5. 采用非阻塞方式的异步传输。
  6. 事件驱动(Connect、Recive、Sent、Close、Exception),采用回调的方式完成调用。
  7. 可灵活的加载过滤器机制。

异步框架使用指南

>> 异步框架使用举例

二、HTTP 客户端和服务端 通信实现

客户端特性:

  1. 基于 Voovan 异步通信框架实现。
  2. 客户端可以灵活自定义请求报文。
  3. 同步实现 HTTP请求(需要同步实现可参考)。

HTTP客户端类使用指南

>> HTTP客户端使用举例

服务端特性:

  1. 支持 WebSocket Version 13 ,并且保持 WebSocket请求参数。
  2. 使用 Lambda 实现更加方便的 Http 响应实现。
  3. 支持路径变量自动抽取 当路径定义/:name,在使用/jonh地址访问时,可以通过 name 参数获取 jonh 字符串。
  4. 重定向支持。
  5. 可灵活实现session共享。
  6. 异常统一展示 支持。
  7. MIME 配置支持。

HTTP服务端类使用指南

>> HTTP服务类使用举例

三、动态编译支持

在内存中编一个保存有 java 代码的字符串,并将编译后的 byte 字节加入到 classloader 中,可灵活的动态定义类和使用。

动态编译使用指南

>> 动态编译使用举例

四、数据库操作帮助类

提供类似Spring JDBCTemplate 的数据访问支持,但提供了更好更灵活易用的函数设计,同时提供对数据库事务的支持。

数据库类使用指南

>> 数据库类使用举例

五、DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等

  1. 简单的 JSON 序列化和反序列化,效率比不过专业的序列化工具(如:FastJson),但重在轻量级好用。
  2. 日期类型和字符串和日期类型互转,日期类型加减操作。
  3. 反射的快捷实现,可直接通过反射取属性值,调用方法,实例化对象,**判断类的继承及实现**。
  4. 简单的日志记录类,支持指定输出流,日志报文自定义等。
  5. 简单的**自推导的对象类型强制转换**,根绝参数类型,运算类型自动退定强制转换类型。
  6. 流操作,读取定长、按行读取、**基于byte的split操作**等。
  7. 使用 ByteBuffer 实现的一个双向通道。
  8. 属性文件操作。
  9. 文件路径拼接、从绝对路径读取、从相对路径读取、从包路径读取、指定起始和结束位置内容读取等。
  10. List 和 Map 的快速初始化。

工具类使用指南

包结构说明

包名 名称
org.voovan.db 数据库操作类
org.voovan.http HTTP工具包
org.voovan.dynamicComplier 动态编译包
org.voovan.network 网络异步通信包
org.voovan.tools 基本工具包
正文到此结束
Loading...