文档章节

快嘉框架使用指南

fastjrun
 fastjrun
发布于 2018/03/12 00:32
字数 1277
阅读 271
收藏 5

快嘉框架是一个面向变化的J2EE开发模型最小实践,它将一个传统的J2EE单体应用模块化,分成了包括war、批处理等在内的主应用和可被依赖的普通jar独立维护;这个模型利用maven构建,主应用通过spring集成它所依赖的所有jar后可以独立部署、启动,对外提供服务。

快嘉框架将需求迭代过程中最容易变化的数据库持久层面和控制器层面的代码作为模块独立出来,并通过集成快嘉代码生成插件生产代码;一般开发人员只需要维护针对数据库定义和接口分别维护sql文件和xml文件,就可以通过快嘉代码生成插件迅速获得这部分模块代码,可以在一定程度上减轻工作量。

快嘉框架将一个标准的J2EE项目划分4类模块如下:

  • 交付模块
    • task:批处理任务,依赖biz模块,目前集成的任务框架是quartz
    • provider:rpc和http服务,依赖biz模块,目前集成的rpc框架是dubbo,http框架是spring mvc,以war包形式发布
    • api:接口相关dto和rpc接口定义(根据接口定义文件生成)
  • 业务模块
    • base:基于mybatis注解使用方式的单表CRUD代码(根据sql文件生成)
    • bundle:接口相关dto、 rpc接口定义及实现、controller和依赖的service定义(根据接口定义文件生成)
    • biz.:业务模块,依赖base和bundle模块,除了bundle中service的实现会集中在这个模块,还包括一些没有定义在接口和任务层面的service及其实现;此外还包括一些工具类、与其他第三方的通信类、自定义的持久层访问类,错误码常量等
  • 开发辅助模块
    • bundle-mock:接口相关dto、rpc相关接口和实现、controller、依赖的service定义及service的简单mock,这里的dto、 controller 都是带swagger-ui标签的,此外,对于rpc相关接口,也提供了带swagger-ui标签的controller (根据接口定义文件生成)
    • provider-mock: rpc服务和http服务,依赖bundle-mock模块,目前集成的rpc框架是dubbo,http框架是spring mvc,以war包形式发布,可作为接口文档服务器和联调服务使用
  • 测试模块
    • test:单元测试模块、依赖biz、base和bundle,基于testng框架实现,
    • api-test: 接口测试模块,接口相关dto、 rpc相关接口定义及通信类(根据接口定义文件生成)

该框架基于spring4+mybatis3.3.0搭建,持久层为mysql,示例demo完整实现了注册、登录和自动登录接口,具体业务逻辑可参考demo-biz模块。

具体接口参见快嘉框架接口说明

安装基础环境

准备windows开发环境

下载demo

生成代码

#以下操作需要在git bash中执行
cd ~/workshop/gitee
git clone https://gitee.com/fastjrun/demo.git
cd demo
git checkout v2.0
sh build.sh package_ci

备注: 如果没有配置私服,且第一次用maven,可能会比较慢,而且会容易被中断,多试几次,直到你看到以上步骤全部OK。推荐用私服

部署demo_provider和demo_task

  • 安装tomcat后,tomcat目录为~/server/tomcat8
  • 配置~/server/tomcat8/conf/server.xml服务端口为8082
  • 新建目录~/app/demo
#以下操作需要在git bash中执行
cd ~/workshop/gitee
git clone https://gitee.com/fastjrun/demo.git
cd demo
git checkout v2.0
sh build.sh package_provider local
sh build.sh package_task local

启动demo_provider和demo_task

  • 打开cmd窗口,切到目录 ~/app/demo/demo-task;双击startup.sh,启动批处理任务和监听task
  • 资源浏览器打开 ~/server/tomcat8/bin;双击startup.sh,启动tomcat

验证

{"email":"test3@sohu.com","loginId":"test3","loginpwd":"22222","mobileNo":"199222336453","nickName":"走2","sex":"1"}
  • 如果没啥意外,响应报文应该如下
  • 此时观察打开的demo-task窗口,可以看到日志如下
  • 表明demo-task也验证成功。

代码生成服务能力

  • demo.sql变更后,demo-base会重新生成源码,主要是单表对应的javabean和基于单表的增删改查操作类
  • demo_api.xml维护了接口定义、输入参数定义、返回参数定义,接口业务和批处理作业业务定义,对应这部分的代码会在demo-bundle、demo-bundle-mock、demo-api、demo-api-test模块生成

© 著作权归作者所有

fastjrun

fastjrun

粉丝 25
博文 49
码字总数 23184
作品 3
海淀
架构师
私信 提问
使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun
2018/06/21
158
0
快嘉接口 sdk 生成 Maven 插件 - sdkg

随着移动应用APP普及、前后端技术分离,微服务化架构盛行,RESTful风格的接口已经在大行其道;而今年开始AI、物联网和云计算的蓬勃发展又加速了人机互联、物物互联的趋势,将RESTful风格的接...

fastjrun
2018/06/19
399
0
快嘉开发框架 1.1 发布,J2EE 开发框架实例

快嘉开发框架1.1在1.0的基础上新增了Common、Util组件,将RestController组件换成了Bundle组件,此外新增了基于spring mvc和freemarker的web系统。web系统提供了对单表对象的简单操作集合,包...

fastjrun
2016/08/17
2.3K
5
快嘉框架 v1.6 更新发布,J2EE 开发框架实例

快嘉开发框架将一个标准的J2EE项目拆分为基础组件(Base)、持久层组件(Persistence-Impl)、接口和报文定义组件(Bundle)、接口模拟实现组件(BundleMock)、业务实现组件(Service-Impl)、批处理系...

fastjrun
2018/03/12
1K
1
J2EE 开发框架实例--快嘉 Demo

快嘉开发框架将一个标准的J2EE项目拆分为基础组件(Base)、持久层组件(Persistence-Impl)、接口和业务定义组件(RestController)、业务实现组件(Service-Impl)、批处理系统(Batch)、接口系统...

fastjrun
2016/03/21
3.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

新架构、新角色:TiDB Community Upgrade!

作者:Jian Zhang 经过几年的发展,TiDB 社区已经逐渐成熟,但是随着社区的发展壮大,我们逐渐感受到了现在社区架构上的一些不足。经过一系列的思考和总结,我们决定升级和调整目前社区组织架...

TiDB
32分钟前
6
0
jquery qrcode库提示not function

jquery qrcode 这个库能用,但是必须在初始化的时候,官方给的使用方法是 引入qrcode的库文件后,在js中写以下 html <div id="qrcode"></div> js jQuery('#qrcode').qrcode({ render: ......

shikamaru
37分钟前
14
0
MySQL数据库去重的简单方案

利用 distinct 对需要处理的字段进行去重 select distinct 字段名 from 表名 利用group by select * from 表名 group by 字段名 利用having select * from 表名 group by 字段名 having 字段...

FeanLau
39分钟前
9
0
字符串转换成整数

实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该...

蔚蓝_晴天
50分钟前
8
0
Eureka客户端续约及服务端过期租约清理源码解析

在之前的文章:EurekaClient自动装配及启动流程解析中,我们提到了在构造DiscoveryClient时除了包含注册流程之外,还调度了一个心跳线程: scheduler.schedule( new Ti...

Java学习录
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部