JAD项目源码简介

1       前言

 

JAD旨在为程序员提供一个高效的自动化开发平台,它涉及互联网Java后台技术基础架构的方方面面,比如持久化技术,缓存,分布式远程调用与微服务等等。同时,它内置了大部分信息化系统中所需要的会员管理、权限控制、流程管理、cms内容管理、oa办公自动化等业务模块供业务开发人员直接使用。

目前项目已经在开源中国码云平台上开源,

代码地址:https://git.oschina.net/457049726/jad

eclipse插件下载地址:http://pan.baidu.com/s/1c1Rxoy8

官网网址:http://www.openjad.com:8080

后台演示网址:http://demo.openjad.com:8080/a

后台用户名/密码:admin/admn

后台dubbo服务治理用户名/密码:guest/guest

1.1 定义、术语及缩写

缩写

英文全称

中文全称

JAD

Java Auto Develop

java自动化开发平台

 

 

 

 

1.2 文件修订记录

文件修订记录

版本修改记录  (A --- 增加    M --- 修改    D --- 删除)

当前版本

日期

修改位置

(图、表、章节)

A/M/D

简单描述

(原因和修改简介)

修改人

评审人

1.0.1

2017-05-12

ALL

A

建立

hechuan

 

 

 

 

 

 

 

 

1.3 参考

相关参考文档:

1、JAD开发框架简介.docx

2       源码结构

         JAD项目以maven的方式分3级模块来组织源代码,顶级模块分以下几个部分:jad-commons(通用模块)、jad-core(核心业务模块)、jad-demo(示例项目)、jad-gen(代码生成器)、jad-infr(基础设施模块)、jad-test(测试模块),如下图所示:

图:JAD项目顶级模块

2.1 jad-commons(通用模块)

       此模块为所有项目通用的基础模块,它包括两个子模块:jad-commons-context和jad-commons-utils。其中jad-commons-context依赖了spring-context,并提供了context相关操作的工具类,以及提供了实体模型中需要用到各种PojoObject的基类,它是整个JAD项目最基础的模块。jad-commons-utils模块它提供了常用的字符串、日期、http请求、cookie操作、JSON处理、加解密等常用操作的工具类。

2.2 jad-core(核心业务模块)

       此模块为jad框架核心业务模块,也是业务开发人员维一可能接触到代码的一个模块。对JAD项目的二次开发,主要就是在此模块中增加自己的子模块。当前jad内置的核心模块主要有:jad-bpm(工作流模块)、jad-cms(cms内容管理模块)、jad-oa(oa办工自动化模块)、jad-weixin(微信接口)等模块。如下图所示:

图:JAD核心业务模块

       JAD每个核心业务模块都包含,api、controller、core三个子模块,各个子模块的作用如下:

2.2.1   api子模块

       api模块主要定义了业务接口(主要是service接口定义及service接口方法的参数和返回类型中涉及的VO类定义等),api中除了接口定义之外,几乎没有任何业务实现。

2.2.2   controller子模块

       controller主要用于作为MVC模式中的按制器,本项目的MVC框架采用了Srping-mvc,controller模块中定义了所有业务controller类。

2.2.3   core子模块

       core模块便是本模块的业务实现模块,主要包括service实现类,以及Dao相关接口和实现类。

 

2.3 jad-infr(基础设施模块)

       此模块几乎不包含任何业务代码,它作为jad项目的基础设施层,主要包括jad-cache(缓存模块)、jad-dao(dao持久化技术)、jad-dubbo(dubbo分布式服务化)、jad-monitor(服务监控)、jad-mq(消息中间件)、jad-oauth(统一认证与授权oauth)、jad-sys(系统管理)、jad-task(任务调度)、jad-web(web api封装)等模块。如下图所示:

图:JAD基础设施层模块

2.3.1   jad-cache缓存模块

         JAD对不同的缓存做了统一的封装,并提供了统一的api来访问缓存。而且,开发人员无需修改任何代码只需简单的配置一下,便可使项目在EhCache、MemCache、Redis三者之间进行切换。

       同时JAD通过对Spring Cache的集成,提供了缓存操作相关注解,开发人员无需写缓存访问相关的逻辑代码,而通过一些简单的注解即可实现缓存操作。

         jad-cache包括以下几个子模块:

2.3.1.1 jad-cache-api(缓存api)

       此模块,封装缓存常用操作的api,它使得项目业务层与缓存低层具体的实现解耦,开发人员无需了解ehcache、memchche等缓存便可使此模块的api来操作缓存。

       同时,此模块还集成了spring cache,实现通过注解就可以使用缓存。

2.3.1.2 jad-cache-ehcache(ehcache缓存实现)

2.3.1.3 jad-cache-memcache(memcache缓存实现)

2.3.1.4 jad-cache-redis(redis缓存实现)

2.3.2   jad-dao(持久层模块)

       JAD采用自主研发的持久层框架,对常用的ORM框架进行了简单的封装和约定,同时支持hibernate、mybatis、spring jpa,并支持多表关联。

       jad-dao模块包括以下几个子模块:

2.3.2.1 jad-dao-common(通用dao模块)

       此模块作dao通用的模块,提供多数据源实现,实体解释,sql语句拼接等功能,并集成spring-data-common模块。

2.3.2.2 jad-dao-hibernate(hibernate实现)

       如果用户采用hibernate访问数据库,需要加入此依赖。

2.3.2.3 jad-dao-jpa(jpa实现)

       此模块依赖于spring jpa,如果用户要用spring jpa来操作数据库,需要加入此依赖。

2.3.2.4 jad-dao-mybatis(mybatis实现)

       此模块对mybatis进行扩展,提供分页、动态解析sql等功能,如果用户要用spring jpa来操作数据库,需要加入此依赖。

 

2.4  jad-dubbo模块

       此模块集成阿里的dubbo项目,提供分布式服务框架。包括两个子模块:jad-dubbo-admin和jad-dubbo-alisoft。

       其中jad-dubbo-admin可部署到tomcat等web容器中,作为dubbo服务治里与调度管理程序。

       jad-dubbo-alisoft只是一个简单的jar模块,集成了阿里的dubbo项目,如果用户的项目需要用到dubbo,只要配置对此模块的依赖即可。

2.5  jad-monitor(jad监控模块)

       此模块几乎原封不动的把dubbo自带的建议监控中心照搬了过来,作为dubbo服务监控程序。其中jad-monitor-simple进行运行。

2.6  jad-mq(消息模块)

       jad-mq为jad项目的消息模块,包括activemq,目前此模块还没有用到。

2.7  jad-oauth(开放授权模块)

         jad集成了kisso项目,提供多种形式的SSO及授权方式。源代码中,此模块包括以下子模块。

2.7.1   jad-auto-simple(简单授权模块)

       此模块是最简单的授权模块,通常用于单体项目,在无需单点登录,无需使用统认证的情况下使用。

2.7.2   jad-auto-center(统一认证中心)

       此模块作为本项目的统一认证中心,可直接部署到tomcat等web容器中,为各个业务系统提供统一认证服务。

2.7.3   jad-oauth2-client(oauth2客户端模块)

       jad通过模方微信授权接口实现了oauth2协议,使用oauth2的客户端应用系统,需要依赖此模块。

 

2.7.4   jad-oauth2-server(oauth2服务端模块)

       用oauth2的服务端应用系统,需要依赖此模块。

2.7.5   jad-security-shiro(shiro扩展模块)

       此模块对shiro进行了集成和扩展。

 

2.7.6   jad-sso-client(sso客户端模块)

       使用sso的客户端应用系统,需要依赖此模块。

 

2.7.7   jad-sso-server(sso服务端模块)

       使用sso的服务端应用系统,需要依赖此模块。

2.7.8   jad-sso-kisso(kisso模块)

       此模块集成了kisso项目的源代码。

2.8 jad-service(服务依赖模块)

       些模块为核心业务层提供服务依赖,包括两个子模块:jad-service-api和jad-service-core分别为业务层的api模块和core模块提供依赖。

2.9 jad-sys(系统管理模块)

       本模块作为核心业务层所有的业务模块必须加入的依赖。它实现了字典数据管理、用户管理、角色管理、权限控制等基本功能的实现。

2.10  jad-web(web模块)

       此模块为项目提供web相关依赖,比如servlet、mvc等。

它包括两个子模块:

2.10.1 jad-web-api(web api模块)

       jad-web-api子模块封装了request、cookie等servlet相关的常用api。并实现了一个简单的应用层防火墙(waf防火墙),从应用层上防止sql注入、xss脚本注入等攻击。

2.10.2 jad-web-mvc(mvc模块)

       此模块集成了spring mvc,使得项目拥有mvc能力。同时,它集成了swagger,使用项目具有自产api文档的能力,也就是说它可以自动跟据所有controller类生成相关api文档。

 

2.11  jad-demo(示例项目)

       jad-demo示例项目包括传统单体架构的示例项目(jad-demo-simple)以及基于dubbo微服务架构的示例项目(jad-demo-microservice)。

       特别说明:不建议开发人员去深度学习本模块的示例项目,因为示例项目是作者在进行业务测试过程中简单搭建起来的项目,参考意义不大。开发人员可通过本项目给出的Eclipse插件,使用“创建JAD项目”向导自行创建一个自己的项目,并深度学习其中的代码。

2.11.1 jad-demo-simple(单体项目)

       jad-demo-simple包含jad-demo-simple-controller、jad-demo-simple-core、jad-simple-front。基中jad-demo-simple-controller为controller层,jad-demo-simple-core为核心实现层,jad-demo-simple-front为前端展示层,使用时,直接把jad-demo-simple-front打包成war包部署到tomcat中即可。

2.11.2 jad-demo-microservice(微服务示例项目)

       jad-demo-microservice包含jad-demo-micro-controller、jad-demo-micro-front、jad-demo-provider-cms、jad-demo-provider-conf、jad-demo-provider-oa、jad-demo-provider-sys。其中jad-demo-micro-controller为后台管理界面的controller层,jad-demo-micro-front为后台管理的web层,开发人员可以把这个部署到tomcat中并访问。jad-demo-provider-conf为服务提供者的配置模块,jad-demo-provider-cms、ad-demo-provider-oa、jad-demo-provider-sys分别为cms、oa、系统管理模块的服务提供者。

2.12  jad-gen(代码生成器模块)

       jad-gen包括两个子模块:jad-gen-conf和jad-gen-vm,其中jad-gen-conf为配置模块,JAD项目中似乎所有的配置文件在这里都可以找到(此模块并没有什么卵用,末来可能会被去掉)。jad-gen-vm为框架的代码生成器配置,主要包括生代生成器的定义的代码模板定义。当前本项目内置的代码生成器有“创建JAD项目”、“自动生成curd代码”等生成器,如果开发人员需要对它进行修改,或者需要增加自己的代码生成器,便可在jad-gen-vm模块中进行定义。

2.13  jad-test(测试框架)

       jad项目采用testng进行单元测试和集成测试,jad在测试模块中封装了对spring context的初始化。使得开发人员不需要在测试代码中自己初始化spring context。

想了解更多信息及时获得项目动态,请扫码关注作者公众号:

 

赞 (0) 评论 分享 ()