使用 YooJAG 快速构建 Java EE Web应用

使用 YooJAG 快速构建 Java EE Web应用

YooJAG 代码生成器应用介绍

本文以一个 Java EE 开发者的角度,借助一个简单的应用示例,在融合了个人经验的基础上介绍了如何用 YooJAG 一步步地构建 Java EE Web应用项目。通过阅读本文,读者不仅能够学会用 YooJAG 进行开发,而且能够充分体会到 YooJAG 提供的“快速开发”的优越性。

示例介绍

本文示例是实现一个应用系统的权限管理,包含查询(view)、创建(create)、删除(delete)、更新(update)四个基本权限,权限控 制的粒度是到每一个页面的菜单和按钮(Button)的用使用权。此系统的全部代码,包含 java、jsp及系统的配制文件,完全由我们的 YooJAG 代码生成器生成,我们拒绝手工修改一行代码。

用 struts 实现表示层,用 Hibernate 开发持久层,用 Spring 提供事务控制等跨模块服务,并用 CAS 进行安全管理。本示例只用到一个域模型:权限管理模型,下面是它的 UML 图。


回页首

搭建开发环境

本文的代码开发平台采用的是 Windows 操作系统,因此,以下环境设置也是针对 Windows 操作系统的。

  • http://java.sun.com 下载最新的 JDK,并安装或解压缩到任意目录下。本文采用 JDK 1.5.0。设置环境变量 JAVA_HOME 指向 JDK 所在的目录,并在 PATH 中添加 %JAVA_HOME%/bin。
  • http://jakarta.apache.org/tomcat 下载最新版的 Tomcat,并安装或解压缩到任意目录下。本文采用 Tomcat 5.5.17。设置环境变量 CATALINA_HOME 指向 Tomcat 的安装目录。
  • http://ant.apache.org 下 载最新版的 Ant,并解压缩到任意目录下。YooJAG 要求的最低版本是 1.6.2,本文采用的是 1.6.5。设置 ANT_HOME 指向 Ant 所在的目录,并在 PATH 中添加 %ANT_HOME%/bin。另外,要拷贝一个 junit.jar 到 %ANT_HOME%/lib 下,如果 lib 下没有 junit.jar,YooJAG 的脚本在运行时会给出警告信息。junit.jar 可以从 http://www.junit.org 获得,也可以从 %YooJAG%/lib/junit3.8.1 目录下获得。
  • http://www.mysql.com 下载最新版的 MySQL,并安装或解压缩到任意目录下。本文采用的是 5.0。
  • http://www.hibernate.org 下载最新版的 hibernate 3,并安装或解压缩到任意目录下。本文采用的是 5.0。
  • http://www.eclipse.org 下载 Eclipse 3.1 或 3.2,安装到任意目录下。

YooJAG 有一个独立的可视化设计器,创建应用逻辑示意图。
YooJAG 代码生成器界面:
回页首

新建项目

YooJAG 的便捷与强大之处在于它已经为我们提供了多种开源框架的集成,并且通过可视化设计器将所有的构建过程自动化。另外,YooJAG 利用 XDoclet 能够为我们生成绝大多数重要的代码,例如 dao 类、service 类以及测试用例,等等,并且能够将大量的配置文件也一并生成好,从而极大地节省了开发人员的时间。

Java EE Web应用开发通常有三种模式:“自上而下”,“自下而上”以及“混合模式”。采用“自上而下”(由 Java 对象向数据库对象创建的过程)的方式固然比较符合“面向对象”的设计思维。相比较而言,采用“自下而上”(由数据库对象生成 Java 对象的过程)就显得简单许多 -- 只需要提供数据库表结构。然而,对于较为复杂的系统,尤其是类之间具有大量的关联的情形,仍然需要采用“自上而下”的创建模式。因此,在实际的项目开发 中,将两种模式进行混合使用比较常见,这也就是“混合”模式。本文采用“自下而上”的模式。


第一步,选择应用架构模型.我们在这里选择”Java 5 | Hibernate3 | Struts1.2/Flex2.0 | Spring”模板,如图:


第二步,填写应用名称.这里的我们创建一个叫 yoolive的应用实例.如


第三步,填写生成代码的目录名称.我们采用默认,如图:


第四步,连接数据库.如图:


第五步,创建菜单,这里我们创建一个’auth’菜单.如图:


第六步,创建实体bean,连接数据库,选择所需要的表名. 如图:


第七步,设制实体bean主健及字段校验.我们采用默认方式,如图:


第八步,设制实体bean关联字段.如图:


第九步,创建service类.如图:
回页首

用 YooJAG 生成代码

YooJAG 自带了一个代码生成GUI工具,根据我们用velocity代码模板框架生成我们需要的代码,比如 dao 类,service 类,action类,菜单、增删改的 JSP页面、配置文件、样本数据,等等。


回页首

页面风格和布局

JSP文件引入了struts 标签和displaytag标签,使用方便,简洁,风格统一,维护简单。


第一种,列表窗口模型

第二种,新增窗口模型

第三种,编辑窗口模型
回页首

其他功能

一个系统除了包含核心逻辑之外,还有其他一些辅助功能,它们也是非常重要的。下面,让我们来看看如何在 YooJAG 中开发这些功能。


语言国际化

如果你的系统不仅仅支持一种语言,那么就需要考虑这个问题。在 YooJAG 中,Resource Bundle 文件是位于 web/WEB-INF/classes 目录下的以 ApplicationResources 开头的 properties 文件。在 YooJAG 中使用 jsp,而这些页面使用 JSTL 的 fmt 标签显示国际化文本。不过,YooJAG 已经将它的“源头”进行了整合,因此,对用户而言,只需要在 ApplicationResources*.properties 中定义需要国际化的文本。 但是,在 Eclipse 中可以看到,YooJAG 的 properties 文件默认的编码不是 UTF-8,而是 ISO-8859-1,这样会导致最后通过 native2ascii 转换后的文件都是 “???”,所以用户需要自己把这些文件转成 UTF-8。转换的方法很简单:在 properties 文件上点右键,在右键菜单上选择 Properties,打开属性窗口后,更改 “Text file encoding” 为 UTF-8。在修改编码前,最好先把已有的文字拷贝出来,转换好之后再粘贴回去,否则会导致原先翻译好的文字变成乱码。

页面布局和样式

使用 YooJAG,能够很方便的修改系统的整体布局和样式,因为 YooJAG 使用了一种强大的 “CSS框架”。项目创建好之后,在 web/styles 目录下,自定主题。这些是 YooJAG 自带的一种主题,目录名即 CSS 框架的主题名。属于“管理员”角色的用户可以在登录后更改系统使用的主题

系统安全

YooJAG 有两种方案解决安全问题,第一种SSO单点登录模式,集成CAS系统进行安全验证;第二种是使用 Acegi 进行安全管理,因为YooJAG生成的系统和引入了Spring项目,Acegi 的配置信息位于 web/WEB-INF/classes/security.xml。

事务控制

YooJAG 可以利用 Spring 的事务管理机制。Spring 可以以声明的方式,对方法进行事务控制,并且可以根据实际的需要,调整控制粒度。“声明方式”的好处在于:核心代码只需要关注业务逻辑,而将事务控制完全 交由配置文件管理,一方面是核心代码简洁清晰,另一方面也便于进行集中配置管理。

日志

YooJAG 集成了 Log4j 进行日志管理,log4j.properties 位于 web/WEB-INF/classes 目录下。

邮件

YooJAG 集成了 Spring 的发送邮件的功能。发送邮件需要用的参数,如主机、端口等信息在 web/WEB-INF/classes/mail.properties 中进行配置。和发送邮件相关的 bean 已经在 applicationContext.xml 中声明:

缓存

YooJAG 对缓存机制的支持源自 Hibernate 对缓存的支持。Hibernate 提供了对五种缓存机制的集成,YooJAG 默认提供了其中的两种:Ehcache 和 Oscache。开发者也可以根据需要自行添加和配置。Acegi 默认提供了对 Ehcache 支持的实现,所以 Ehcache 是较好的选择。ehcache.xml 和 oscache.properties 位于 web/WEB-INF/classes 中。

回页首

示例代码下载

示例代码下载


 
回页首

结束语
  • 使用 YooJAG 创建 Web 应用,步骤非常简单,有GUI可视化工具向导;
  • 使用 YooJAG 创建 Web 应用,非常快速,因为 YooJAG 已经帮我们完成大部分代码生成/集成/配置的工作;
  • 使用 YooJAG 创建 Web 应用,非常省力,因为 YooJAG 已经提供了很多“开箱即用”的功能。体验快速开发,从 YooJAG 开始。
回页首
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值