克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

基于Vert.x+Guice构建restful Api服务框架

介绍

Vert.x是一个用于下一代异步、可伸缩、并发应用的框架,旨在为JVM提供一个Node.js的替代方案。开发者可以通过它使用JavaScript、Ruby、Groovy、Java、甚至是混合语言来编写应用。

Vert.x是事件驱动的,其处理请求的高性能也是基于其事件机制。Vert.x的事件机制中有几个非常重要的概念:Event Loop、Event Loop Vertical、Worker Vertical、Event Bus、Vert.x Module。

Event Loop:即事件循环,是由Vert.x启动的事件处理线程,也是Vert.x项目对外开放的入口,Vert.x由此接收请求事件。一个Vert.x有一个或多个事件循环线程组成,线程最大数量为主机有效的CPU核数。

Event Loop Vertical:事件的业务处理线程,存在于Event Loop中,用于处理非阻塞短任务。

Worker Vertical : 事件的业务处理线程,用于处理长任务阻塞任务。

Event Bus:即事件总线,是Vert.x事件模型中最核心的部分,所有的事件都经由事件总线进行分发,包括Vertical之间的通信事件。

Vert.x Module : Vert.x项目模块,一个应用通常由多个模块组成,每个模块一般包含多个Vertical。

Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。

Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。

Guice采用Java加注解的方式进行托管对象的配置,充分利用IDE编译器的类型安全检查功能和自动重构功能,使得配置的更改也是类型安全的。

Guice提供模块对应的抽象module,使得架构和设计的模块概念产物与代码中的module类一一对应,更加便利的组织和梳理模块依赖关系,利于整体应用内部的依赖关系维护,

而其他IOC框架是没有对应物的,此外,借助privateModule的功能,可以实现模块接口的明确导出和实现封装,使得支持多数据源这类需求实现起来异常简单。

特点

Java构建REST的方案有很多种,开源的也有很多,经典的有SSH ,spring+springmvc+mybatis等等,struts和spring曾经是构建web服务最常用组合。

随着node.js异步编程工具出现 ,异步处理大行其道,在java语言中vert.x应该是最接近node.js处理模式,无疑给不愿意搞js语法的java程序员带来福音。

Web框架开发的趋势也由早期的 tomcat ,jboss 依赖容器的web应用,走向以嵌入式http服务器的java应用,当下流行处理方案例如 SpringBoot。

伴随着netty框架日趋成熟,基于netty的构建高性能http后端的方案越来越多. vert.x以netty作为底层通信核心,提供了性能保障。

以Vert.x+Guice+MyBatis替换Spring+Springmvc+MyBatis的组合,提供给学习Vert.x,guice案例参考,同时给尝试营造全新restful服务的开发人员提供一个崭新的思路。

感谢

  • vertx
  • guice
  • mybatis
  • guava
  • rxjava
  • gradle

运行部署

修改resources 目录下 mybatis-config.xml数据库参数

gradle build来构建jar

The MIT License (MIT) Copyright (c) 2017 itlabers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

基于Vert.x+Guice构建restful Api服务框架 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化