JAD项目创建与部署测试

项目创建与部署测试

版 本:1.0.1

                                                              拟制人: hechuan

1       前言

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

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

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

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

官网网址: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-11

ALL

A

建立

hechuan

 

 

 

 

 

 

 

 

 

2       jad简单项目

       jad简单项目指传统的单体项目,虽然用户可以跟据自己的需求钩选自己需要的业务模块(当前内置模块包含会员管理、权限管理、cms内容管理、oa办工自动化等等),但所有业务模块集成在同一个项目中,这种方式创建的项目打包和布署非常简单(只需要把生成的war解压到tomcat之类的web容器相关目录下即可),用于传统的中小型项目中。

2.1 项目创建

       可用JeeadWizard插件提供的“创建JAD简单项目”的向导来创建项目,具体方法请参见JeeadWizard相关文档。

       特别说明:通过向导的方式创建项目,只是一种简单便捷的创建和配置JAD项目的方式,开发人员如果对你JAD项目的结构和配置比较熟练,也可以手工创建和配置。

2.2 项目初始化

         创建项目完成后,需要初始化数据库,相关的sql脚本在项目跟目录下的sql目录中。

2.3 项目结构

       可通过Eclipse插件JeeadWizard创建的简单项目,它是一个传统的二级maven项目,结构如下图所示:

图:JAD简单项目结构

JAD简单项目分以下四个模块:

2.3.1   api模块

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

       开发人员在写业务代码时,对所有service接口及VO就都应该写在这个模块中,但尽量不要写任何业务实现逻辑。

2.3.2   controller模块

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

       这个模块依赖于api模块,开发人员在写controller类时,可以依赖注入api中的service接口,然后调用service接口提供的接口方法来实现业务处理。

2.3.3   core模块

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

2.3.4   web模块

       这是简单项目的前端展示模块,所有jsp视图文件都在这个模块中,而且,它依赖于controller和core模块,它可以打包成war文件,可以被部署到tomat之类的web容器中运行。

       部署并运行成功后,通过ip:端口即可访问,界面如下:

图:jad项目web管理界面

2.4 项目编译与部署

       通过Eclipse插件JeeadWizard创建的简单项目是一个传统的二级maven项目,将每个模块导入到工作空间后,同普通的maven项目一样,使用builder和install等maven命令就可以编译打包。

       对于jad简单的项目,可以直接部署的模块是web模块。

2.4.1   在Eclipse中部署jad项目

       在开发模式下,开发人员可以直接把web模块部署到eclipse中自带的tomcat插件中,如下图:

图:在Eclipse中部署jad项目

2.4.1   jad项目发布

       同传统的maven项目一样,业务开发完成后,发布到生产或测试环境中去时,可以先用install命令打包,install成功后,在web模块的target目录中可以找到war文件,将它解压到tomcat的部署目录中即可,打包好的war文件如下图:

图:jad简单项目打包

 

 

3       基于dubbo的微服务项目

       基于dubbo的微服务项目,需要zookeeper作为注册中心,每个业务模块需要独立部署运行。

 

3.1 项目创建

       可用JeeadWizard插件提供的“创建JAD微服务项目”的向导来创建项目,具体方法请参见JeeadWizard相关文档。

       在创建项目的过程中,需要设置dubbo选项,如下图所示:

图:jad微服务项目dubbo选项

       上图中,“registry地址”为zookeeper注册中心的地址,如果钩选了“启用监控中心”,则生成的项目部署到运行环境上后会自动从注册中心发现监控中心,并被监控中心所监控。

       上图中,registry缓存目录,用于供注册中心缓存使用,以便减轻注册中心的负担,或注册中心短暂的挂掉时,只要服务提供者依旧可用,业务系统就依旧可用。

       上图中,“服务提供者端口”表示每个业务模块最终发布成服务提供者运行时所监听的端口。每个服务的端口尽量不要重复,否则无法部署到同一台服务器上(运行时会提示端口冲突)。

       特别说明:“registry地址”及“服务提供者端口”等信息都可以在配置文件中修改。通过向导的方式创建项目,只是一种简单便捷的创建和配置JAD项目的方式,开发人员如果对你JAD项目的结构和配置比较熟练,也可以手工创建和配置。

3.2 项目初始化

         创建项目完成后,需要初始化数据库,相关的sql脚本在项目跟目录下的sql目录中。

3.3 项目结构

       可通过Eclipse插件JeeadWizard创建的微服务项目,它是一个传统的maven项目,结构如下图所示:

图:JAD微服务项目结构

       从上图可以看出,JAD微服务架构的项目,主要分五大模块:api模块,controller模块,core核心业务模块,provider服务提供者模块,web模块。其中api模块,controller模块,core模块,web模块,与上一节简单项目中的模块一致,这里不再介绍。直得一提的就是web模块与上一节简单节项目中的web模块一样,都是一个web项目,可以直接部署到tomcat之类的web容器中。不同的是,这里这个web模块只是一个服务消费者(它不依赖于任何core核心业务模块,只消费服务不提供服务),而上一节简单节目的web模块,它依赖了core模块。以下重点介绍上jad简单项目中没有的provider服务提供者模块。

3.3.1   provider服务提供者模块

       此模块作为微服务架构中的服务提供者,这个模块下包含一个或多个子模块。在创建项目的过程中,跟据用户所勾选的业务模块的不同,这里包含的子模块也可能不同。但是,每一个业务模块都会生成一个对应的服务提供者模块。当前所有可能的子模块如下:

3.3.1.1 provider-conf模块(服务提供者配置模块)

       这个模块提供了数据库、缓存等通用配置,它是当前所有服务提供者模块都依赖的配置模块,当然,这个依赖并不是必须的,如果自己的服务提供者的配置跟这个模块的通用配置不一样,也可以不依赖这个模块,而自己额外配置。

3.3.1.2 provider-cms模块(cms服务提供者)

       这是cms模块的服务提供者,它依赖了cms模块中的core模块。

3.3.1.3 provider-oa模块(oa服务提供者)

       这是oa模块的服务提供者,它依赖了oa模块中的core模块。

3.3.1.4 provider-sys模块(系统管理服务提供者)

       这是sys模块的服务提供者,它依赖了sys模块中的core模块。

3.3.1.5 provider-XXX模块(服务提供者)

       这里跟用户自己业务相关的服务提供者。

 

3.4 项目编译与部署

       通过Eclipse插件JeeadWizard创建的简单项目是一个传统的maven项目,将每个模块导入到工作空间后,同普通的maven项目一样,使用builder和install等maven命令就可以编译打包。

       对于jad微服务项目,需要zookeeper服务器作为注册中心,需要部署所有业务模块对应的服务提供者,需要部署web模块作为服务消费者。如果需要对服务提供者进行管理,则需要部署dubbo自带的服务治理应用。如果启了监控中心,还需要部署监控中心服务。

3.4.1   运行zookeeper

       在运行服务提供者和消费者程序之前,必需先启动zookeeper服务器,否则可能启动不成功。

3.4.2   部署服务提供者

       dubbo本身集成了jetty,不需要再使用其它如tomcat之类的web容器。而且,dubbo官方推荐直接将服务提供者作为一个普通的java程序,用Main函数作为程序运行入口,这样做的好处就是大大节省了额外web容器的服务器开销。所以,JAD默认的部署方式就是先把程序打包成一些普通的jar文件,然后通过Main函数运行。当然,JAD还提供了把服务提供者程序为一个web项目用tomcat之类的东西运行(因为不推荐这种方式,暂时不给出这种方式的配置文档)。

3.4.2.1 Eclipse中运行服务提供者程序

       在开发环境下,有时候开发人员需要在Eclipse中直接运行服务提供者程序,以进行调试。在Eclipse中直接运行服务提供者的方式就是,在对应的服务提供者模块的测试目录(src/test/java)中找到包含Main函数的RpcMainXXX.java类,直接右击运行它的main函即可(可以以debug的模式运行,从而可以进行断点调式。之所以把这个类放到src/test/java中,是因为放到这里打包时不会被打包到最终发布的安装包中),以cms模块为例,如下图所示:

图:cms服务提供者运行入口

3.4.2.2 打包和发布服务提供者程序

       打包服务提供者的方法就是在每个服务提供模块上,用maven的install命令打包,每个服务提供者模块对应的pom.xml文件中都配置了assembly,在install过程中,assembly会自动把项目打包成一个类似于testmicro-provider-XXX-assembly.tar.gz的文件(这里的XXX表示cms,oa,sys或用户自己的项目模块名称)。这个文件便是即将发布的程序压缩文件。将之解压后,可以看到三个目录:bin、conf、lib目录。其中bin目录命令项目启动和运行的相关命令,conf是数据库、缓存、日志等配置目录,lib是所有程序文件编译后生成的jar包。

       将以上解压后的目录及文件上传到服务器,便可以通过bin目录中的命令对服务提供者程序进行启停。其中start.sh或start.bat表示程服务启动,stop.sh表示服务停止。

 

3.4.1   部署服务消费者

                  服务消费者是本项目中的web模块,它是一个传统的web项目,同上节的部署简单项目的web模块一样,把它部署到Eclipse自带的tomcat插件或者服务器上tomcat的部署目录中即可。

       部署并运行成功后,通过ip:端口即可访问,界面如下:

图:jad项目web管理界面

 

3.4.1   运行服务治理程序

         如果需要对本项目所有的服务提供者及消费者进行管理,可部署dubbo自带的服务管理程序。源代码在本项目的jad\jad-infr\jad-dubbo\jad-dubbo-admin目录,它是一个普通的web项目,将之导入到当前工作空间中编译打包然后发布到tomcat中即可运行。

         部署并运行成功后,通过ip:端口即可访问,界面如下:

图:JAD项目服务治理首页

3.4.1   运行服务监控中心

       如果启了监控中心,则运行服务提供者时,需要先运行服务监控中心,dubbo自带了一个简易监控中心。并已被集成到JAD源代码中,源代码在项目的jad\jad-infr\jad-monitor\jad-monitor-simple目录下。

       dubbo自带了的简易监控中心本质上也是一个服务提供者,对它的打包和部署方式同上文的服务提供者部署方式一模一样。

       部署并运行成功后,通过ip:端口即可访问,界面如下:

图:JAD项目监控中心

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

 

转载于:https://my.oschina.net/u/1415710/blog/917459


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部