java源码

关注公众号 jb51net

关闭
Voovan框架 v5.0.0 alpha

Voovan框架 v5.0.0 alpha

热门排行

简介

Voovan 是一个高性能异步网络框架和WEB服务器框架,同时支持HTTP客户端抓取、动态编译支持、数据库访问封装以及DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等功能。旨在提供可靠、方便、可单元测试的代码。它是极少依赖的独立工具包,希望能够方便广大开发者快速的实现应用。

典型案例:

商旅行业酒店预订系统,基于 Voovan 开发的后端API服务

基于 Voovan 开发物联网管理服务

基于 Voovan 开发的游戏后端服务

基于 Voovan 开发的 WEB 服务以及手机推送服务

某通信企业基于 Voovan开发每分钟通信 10w+ 次的关口机

Vestful 一款提供 Restful 服务的框架

Dockerfly 一款 Docker web 管理工具

JDocker 一款 java 开发 Docker API 封装的框架

某区块链交易所后端所有服务都基于 Voovan 运行, 以稳定运行一年半 

JDK支持:

推荐使用 JDK1.8,懒人专用。

目前自2.0.1开始所有版本在发布前都会进行 jdk1.7的测试。

如果 WebServer 使用lambda 需要 JDK1.8,不使用 lambda 需要 JDK1.7。

有能力的同学可以通过很简单几行修改使 WebServer 和 HTTPClient使用 NIO 那么就是 JDK1.6。

框架特点介绍:

用 JDK8 的 lambda 表达式,快速实现 HTTP/WebSocket 服务的开发。

异步通信框架解决粘包问题,过滤器链等。

独立无依赖的代码。

源码注释丰富,方便码友学习、调试、使用。

一、高性能异步通信(NIO异步通信) [voovan-network]

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

1.可灵活解决Socket通信粘包的支持(源码中包含 HTTP协议,字符串换行,定长报文的粘包实现)。

2.支持 SSL/TLS 加密通信。

3.提供线程池依据系统负载情况自动动态调整。

4.采用非阻塞方式的异步传输。

5.事件驱动(Connect、Recive、Sent、Close、Exception),采用回调的方式完成调用。

6.可灵活的加载过滤器机制。

二、HTTP客户端和WEB服务器[voovan-web] HTTP客户端特性:

1.基于 Voovan 异步通信框架实现。

2.客户端可以灵活自定义请求报文。

3.同步实现 HTTP请求(需要同步实现可参考)。

4.实现 WebSocket 客户端调用,可以连接任何支持 WebSocket Version 13的 WebSocket 服务。

WEB服务器特性:[voovan-web]

1.支持 WebSocket Version 13,并且保持 WebSocket请求参数。

2.使用 Lambda 实现更加方便的 Http 响应实现。

3.支持路径参数自动抽取 当路径定义/:name,在使用/jonh地址访问时,可以通过 name 参数获取 jonh 字符串。

4.重定向支持。

5.可灵活实现session共享。

6.异常统一展示支持。

7.MIME 配置支持。

8.支持基于 HTTP1.1 的 HTTPS 访问,默认采用TLS模式.

9.支持性能监控. [HTTP服务端性能监控演示]

三、动态编译支持 [voovan-common]

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

四、数据库操作帮助类 [voovan-database] 提供类似Spring JDBCTemplate 的数据访问支持,但提供了更好更灵活易用的函数设计。

支持的参数类型:

Map 参数

不定参数

对象作为参数

支持存储过程调用。

支持批量更新。

数据库事务的支持。

支持自动移除无匹配参数的条件。

结果转换对象的时候使用模糊匹配。

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

1.简单的 JSON 序列化和反序列化,效率比不过专业的序列化工具(如:FastJson),但重在轻量级好用。

2.日期类型和字符串和日期类型互转,日期类型加减操作。

3.反射的快捷实现,可直接通过反射取属性值,调用方法,实例化对象,判断类的继承及实现。

4.简单的日志记录类,支持指定输出流,日志报文自定义等。

5.简单的自推导的对象类型强制转换,根绝参数类型,运算类型自动退定强制转换类型。

6.流操作,读取定长、按行读取、基于byte的split操作等。

7.使用 ByteBuffer 实现的一个双向通道。

8.属性文件操作。

9.文件路径拼接、从绝对路径读取、从相对路径读取、从包路径读取、指定起始和结束位置内容读取等。

10.List 和 Map 的快速初始化。

11.热部署

12.动态函数和类

大家还下载了