随着WEB UI 框架(EasyUI/Jquery UI/Ext/DWZ)等的逐渐成熟,系统界面逐渐实现统一化,代码生成器也可以生成统一规范的界面!
代码生成+手工MERGE半智能开发将是新的趋势,生成的代码可节省50%工作量,快速提高开发效率!
1.2. 平台介绍
JEECG [J2EE Code Generation] 是一款基于代码生成器的智能开发平台,采用代码生成+手工MERGE 半智能开发模式,可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失扩展性和灵活性。
JEECG宗旨:简单功能由代码生成器生成使用; 复杂业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,供开发编写业务逻辑。实现了流程任务节点和任务接口的灵活配置,既保证了公司流程的保密行,又减少了开发人员的工作量。
JEECG V3.0版本推翻原有SSH2架构,采用SpringMVC+Hibernate+UI快速开发库作为基础架构,采用面向声明的开发模式,基于泛型方式编写极少代码即可实现复杂的数据展示、数据编辑、表单处理等功能,再配合代码生成器的使用将JavaEE的开发效率提高6倍以上,可以将代码减少60%以上。
JEECG V3.0版本四大技术点: 1.代码生成器 2.UI快速开发库 3.在线流程设计 4.系统日志记录。
·代码生成器:支持多种数据模型,根据表生成对应的Entity,Service,Dao,Controller, JSP等,增删改查功能生成直接使用
· UI快速开发库:针对WEB UI进行标准封装,页面统一采用UI标签实现功能:数据datagrid,表单校验,Popup,Tab等,实现JSP页面零JS,开发维护非常高效
·在线流程设计:在线流程定义,采用开源Activiti流程引擎,实现在线画流程,自定义表单,表单挂接,业务流转,流程监控,流程跟踪,流程委托等
·系统日志记录:系统操作日志详细记录,帮助运维人员进行系统分析和故障排查。
V3版本特性
· JEECG V3.0,经过了专业压力测试,性能测试,保证后台数据的准确性和页面访问速度
·支持多种浏览器: IE, 火狐, Google 等浏览器访问速度都很快
·支持数据库: Mysql,Oracle10g等
·基础权限: 用户,角色,菜单权限,按钮权限,数据权限
·智能报表集成: 简易的图像报表工具和Excel导入导出
· Web容器测试通过的有Jetty和Tomcat6
·待推出功能:分布式部署,云计算,移动平台开发,规则引擎,代码生成器(eclipse插件)
·要求JDK1.6+
1.3. 平台优势
ü采用主流开源技术框架,容易上手; 代码生成器依赖性低,很方便的扩展能力,可完全实现二次开发;
ü开发效率很高,代码生成器支持多种数据模型:单表数据模型、单表自关联模型和一对多(父子表)数据模型,代码生成功能直接使用;
ü查询SQL过滤器,后台不需要写代码,页面追加查询字段,查询功能自动实现
ü页面校验自动生成(必须输入、数字校验、金额校验、时间控件等);
ü基础的用户权限:菜单,按钮权限,角色
ü常用共通封装,各种工具类(定时任务,短信接口,邮件发送,Excel导出等),基本满足80%项目需求
ü集成简易报表工具,图像报表和数据导出非常方便,可极其方便的生成pdf、excel、word等报表;
ü集成工作流引擎Activiti5,并实现了只需在页面配置流程转向,可极大的简化工作流的开发;用Activiti5的流程设计器画出流程走向,一个工作流基本就完成了,只需进行流程的配置或者写很少量的java代码
1.4. 平台架构
架构技术: Spring MVC+Hibernate4+UI快速开发库+Spring JDBC+Highcharts图形报表
+Jquery+Ehcache。
设计思想: 零配置(约定大于配置)
各技术点说明
[1] 代码生成器
代码生成器用于生成规范的后台代码+统一风格的前台页面+表单校验。
单表模型,单表自关联模型和一对多(父子表)数据模型,增删改查功能生成直接使用;
特点:
A.前台页面字段对应数据库字段生成;
B. 页面字段校验自动生成(数字类型\必须项\金额类型\时间控件\邮箱\手机号\QQ号等等);
C.支持Oracle/Mysql/Postgres数据库
注意:代码生成包括JSP页面生成,代码无需修改,增删改查功能直接配置使用
[2].查询条件过滤器
页面加查询条件,后台不需要写任何逻辑判断,动态拼HQL追加查询条件
[3].UI快速开发库
UI快速开发库,针对WEB UI进行标准封装,页面统一采用UI标签实现功能:数据datagrid,表单校
验,Popup,Tab等,实现JSP页面零JS,开发维护非常高效
[4].智能工作流
在线流程定义,采用开源Activiti流程引擎,实现在线画流程,自定义表单,表单挂接,业务流转,流程监控,流程跟踪,流程委托等
[5].表单Form校验组件
前台页面字段校验采用Validform表单检验组件
[6].常用共通封装
数据字典/ 邮件发送/ 定时任务/短信接口/Freemarker模板工具/Jquery
[7].基础用户权限
权限功能:用户、角色、权限(菜单权限+按钮权限)
[8].Ehcache缓存机制
Ehcache缓存自定义标签(永久缓存/临时缓存)
[9].报表封装
Excel简易导出工具类+Highcharts图形报表
[10].Hibernate+Spring jdbc 组合使用
Hibernate+Spring jdbc组合使用(单表操作使用Hibernate;复杂SQL采用SQL),
(1) SQL设计方案:DB SQL抽离出Java代码,采用命名规范根据类名和方法名创建SQL文件,存储SQL;
(2) 程序自动读取SQL;
(3) SQL读取模式:开发模式和发布模式[SQL加载内存]。
[11].安全的事务回滚机制+安全的数据乐观锁机制
[12].系统日志记录,便于问题追踪
2. JEECG框架初探
2.1. 演示系统
打开浏览器,输入JEECG演示环境地址:https://www.wendangku.net/doc/fe5274390.html,:8080,可以看到如图 2-1所示的登录界面。
图 2--1 演示系统登录界面
点击【登陆】按钮,进入演示系统的主界面,如图 2-2所示。
图 2--2 演示系统主界面
在JEECG演示系统中的功能模块包括系统管理、流程管理、业务申请、业务办理、常用功能演示等。其中,用户管理、流程设计器的界面截图如图 2--3和图 2--4所示。
图 2--3 用户管理界面
图 2-4 流程设计器
2.2. 示例代码
用户管理中的用户列表和用户维护所用的jsp页面代码分别如图 2-5和图 2-6所示。
图 2-5 列表页面代码
图 2-6 用户管理页面代码
3. JEECG 开发环境搭建
JEECG推荐的开发环境为Myeclipse6.5/Eclipse3.7+JDK1.6+Tomcat6.0
3.1. JAVA环境配置
通过Oracle的官方地址下载JDK开发包:
https://www.wendangku.net/doc/fe5274390.html,/technetwork/java/javase/downloads/index.html
推荐下载最新的Java SE 6版本,目前最新的Java SE 6 SDK版本为Update 43,如图 3-1所示。
图 3-1 最新SDK下载链接
将下载的开发包安装到本机非中文路径的目录中,如本机的D:\Program Files\Java\jdk1.6.0_43。安装完JDK之后,需要配置本机的环境变量如下:
JAVA_HOME= D:\Program Files\Java\jdk1.6.0_43
PATH=%JAVA_HOME%/bin;
Classpath=.;%JAVA_HOME%\lib;
3.2. 开发环境搭建
3.2.1. 项目导入开发环境
将下载到的源代码解压到本地磁盘,通过eclipse的Import->Existing Projects into Workspace功能将源代码导入到MyEclipse开发环境中,在项目导入之后,需要对编译环境进行检查,如果编译环境中缺少J2EE支持的话,需要手动加上,如图 3-2所示。
图 3-2 Myeclipse编译环境
如果你使用的是eclipse,而不是MyEclipse做为开发工具,将项目导入到eclipse之后,需要为项目添加eclipse 的WTP项目支持。
在导入的工程上右键Propertis->Project Facets,选择Convert to faceted from…,如图 3-3所示。
图 3-3 为工程添加WTP项目支持
在打开的界面中,勾选“Dynamic Web Module”和“Java”,分别选择其Version为2.5和1.6,并为项目添加Tomcat的运行时支持,如图 3-4所示。
图 3-4 Project Facets及运行时选择
选择完Project Facets之后,点击界面下方的“Futher configuration avaliable”链接,在弹出的新窗口中,填写Content directory的值为“WebRoot”,并将Generate web.xml deployment descriptor前面的复选框取消勾选,并为“Content root”命名为合适的值,如图 3-5所示。
图 3-5 Web Module设置
确定之后,完成对工程的web化支持。
3.2.2. 数据库初始化
在mysql数据库中新建一编码为UTF8的数据库jeecg。
通过命令:
将工程目录中的doc / jeecgv3-init.sql脚本导入到新建的jeecg数据库中。
此时使用show tables;命令查看数据库中的表,可以看到如图 3-6的结果,已经有70张表入库。
图 3-6 数据库初始化
3.2.3. 项目数据源配置
对数据库进行初始化之后,需要相应地对项目中的数据源连接进行配置。
修改项目的数据源连接配置文件resources/dbconfig.properties,如图 3-7所示。
图 3-7 项目数据源配置
修改项目中的代码生成器数据源连接配置文件resources/jeecg/jeecg_database. properties,如图 3-8所示。
图 3-8 代码生成器的数据源配置
另外,根据自己的需要对代码生成器的相关参数进行配置,配置文件为
resources/jeecg/jeecg_config.properties。
3.2.
4. 项目启动测试
配置完成之后,启动Tomcat,在浏览器地址栏中输入http://localhost:8080/jeecg/,打开的界面如图 3-9所示。
图 3-9 项目登录页面
输入用户名密码admin/123456,登陆进入主界面,如图 3-10所示。
图 3-10 项目主界面
至此,开发环境搭建完成。
4. 代码生成器
本章通过一个实际的示例来讲解JEECG代码生成器的使用。
4.1. 数据表创建
现在有一张员工表person,其建表SQL为:
注意:建表时,必须给每个字段加上注释,代码生成器会根据注释去生成页面字段对应的显示文本。
将建表SQL在数据库管理器里面执行,完成对person表的创建。
4.2. 代码生成器配置
代码生成器有两个配置文件:一个用于数据源的配置,一个用于代码生成器的参数配置。这两个配置文件分别是resources/jeecg目录的jeecg_database.properties和jeecg_config.properties。
参数配置文件jeecg_config.properties的各参数说明如表 4-1所示:
表 4-1 代码生成器参数说明