`
danwind
  • 浏览: 232710 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

AppFuse1.x快速构建J2ee应用

阅读更多
1.搭建开发环境

  • 从 AppFuse 下载页面 下载 appfuse-src.zip,并解压缩在任意目录下。
  • 从 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,并解压缩到任意目录下。AppFuse 要求的最低版本是 1.6.2,本文采用的是 1.6.5。设置 ANT_HOME 指向 Ant 所在的目录,并在 PATH 中添加 %ANT_HOME%/bin。另外,要拷贝一个 junit.jar 到 %ANT_HOME%/lib 下,如果 lib 下没有 junit.jar,AppFuse 的脚本在运行时会给出警告信息。junit.jar 可以从 http://www.junit.org/ 获得,也可以从 %AppFuse%/lib/junit3.8.1 目录下获得。
  • 从 http://www.mysql.com/ 下载最新版的 MySQL,并安装或解压缩到任意目录下。本文采用的是 5.0。
  • 从 http://www.eclipse.org/ 下载 Eclipse 3.1 或 3.2,安装到任意目录下。



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

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

打开命令行控制台,进入安装目录,运行 code="cmd"]ant new
为简单起见,所有参数选用默认值, 脚本运行成功后,新项目创建在 c:\opt\myapp 下(与 AppFuse 目录同级),myapp 是 AppFuse 默认的项目名称。
AppFuse 默认连接 MySQL 的用户名是 root,密码为空。如果你的 root 密码不是空,需要修改 C:\opt\myapp\build.properties 中的 database.admin.password 项,记得将注释去掉。

3.运行项目
在 c:\opt\myapp 下运行
ant setup test-all

“setup” 完成了很多“设置”工作:创建数据库、构建 dao 和 serive 类、加载样本数据、创建 war 文件并部署到 tomcat,等等。“test-all” 运行所有的测试用例:对 dao,service 以及页面的测试。如果这个脚本运行成功,说明开发环境一切就绪。这时,启动 Tomcat,通过访问 http://localhost:8080/myapp 就能够看到 AppFuse 的登录界面了。AppFuse 预定义了两个用户:mraible 和 tomcat,密码都是 tomcat。mraible 属于管理员角色(能够管理用户信息),tomcat 属于普通用户角色。用 mraible 登录可以看到 图 3的界面。

4.增加一个实例

4.1创建数据库表

在 mydb 数据库中执行如下语句创建 employee 表:

清单 2. 创建 employee 语句
CREATE TABLE `employee` (
`id` bigint(20) NOT NULL auto_increment,
`code` varchar(10) NOT NULL,
`dept` varchar(50) NOT NULL,
`name` varchar(20) NOT NULL,
`status` varchar(10) NOT NULL,
`telephone` varchar(20) default NULL,
`title` varchar(50) NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


4.2用 AppGen 生成代码

AppFuse 自带了一个代码生成工具 -- AppGen,它位于 c:\opt\myapp\extras\appgen 目录下面。AppGen 可以生成绝大部分我们需要的代码,比如 dao 类,service 类,菜单、增删改的 web 页面、配置文件、样本数据,等等。AppGen 利用 XDoclet 生成代码,因此可以在 extras/appgen/src 看到很多 .xdt 文件,这些就是 XDoclet 的模版定义文件。如果你希望自己编写 dao 和 service 类,就运行“install”这个 target,否则就用 “install-detailed” ,它可以帮你搞定一切。下面就让我们来运行 “install-detailed” 生成代码。在 c:\opt\myapp\extras\appgen 下运行
ant install-detailed



清单 3. 运行 install-detailed
                ...
[input] Would you like to generate code from a table or POJO? (table,pojo)
table
[input] What is the name of your table (i.e. person)?
employee
[input] What is the name, if any, of the module for your table (i.e. organization)?
hr
...


前两个问题都很直观:选择从 table 生成代码,表名是 employee。第三个问题是让用户输入使用的模块名,如果你希望 AppFuse 帮你按模块生成代码的话,就需要输入一个模块名称。这里,我们输入“hr”。如果运行成功,在 Eclipse 中会看到如下的目录结构:
4.3不过,AppFuse 并不知道开发者需要加载哪些 hbm 文件,所以要手工将 Employee.hbm.xml 文件添加到配置文件中:打开 applicationContext-hibernate.xml,在 “sessionFactory” 的 bean 声明中,找到 “mappingResources” 属性的定义,增加 “<value>org/appfuse/hr/model/Employee.hbm.xml</value>”。
清单 4. applicationContext-hibnerate.xml 中添加 Employee.hbm.xml
 ...
<beans>
    <!-- Hibernate SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
|-------10--------20--------30--------40--------50--------60--------70--------80--------9|
|-------- XML error:  The previous line is longer than the max of 90 characters ---------|
        <property name="dataSource" ref="dataSource"/>
        <property name="mappingResources">
            <list>
                <value>org/appfuse/hr/model/Employee.hbm.xml</value>
                <value>org/appfuse/model/Role.hbm.xml</value>
                <value>org/appfuse/model/User.hbm.xml</value>
            </list>
        </property>
...

在 c:\opt\myapp 下运行
ant deploy
。打开 “http://localhost:8080/myapp”,用 mraible/tomcat 登录,“Employee List” 已经被添加到菜单里了。

分享到:
评论

相关推荐

    使用AppFuse快速构建J2EE应用.doc

    AppFuse 是一个开源项目,旨在帮助开发者快速构建J2EE应用程序。它提供了一种模板化的方法,通过结合现有的最佳实践和流行的技术栈,如Spring、Hibernate和Tapestry,简化了开发过程。本文将深入探讨如何利用AppFuse...

    使用 AppFuse 快速构建 J2EE 应用

    通过以上介绍,我们可以看出 AppFuse 是一个强大而实用的工具,对于想要快速开发 J2EE 应用的开发者来说,它能显著提高开发效率,同时保持代码的整洁和可维护性。无论你是初学者还是经验丰富的开发者,AppFuse 都...

    Appfuse教程Appfuse开发.pdf

    package org.appfuse.model; /** @hibernate.class table="PERSON" */ public class Person extends BaseObject { private Long id; private String firstName; private String lastName; // Getter and ...

    Appfuse 2.doc

    ### Appfuse 2.0 入门指南及源码下载详解 #### 一、概述 本文档旨在为初学者...mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-jsf -DremoteRepositories=...

    appfuse.tar.gz

    Get your questions answered on the mailing list at http://appfuse.org/forums. Eclipse 3.2+: ---------- From the command line, cd into the appfuse directory and run: mvn eclipse:eclipse -...

    AppFuse学习笔记(J2EE入门级框架)

    完成这些步骤后,开发者就可以基于 AppFuse 快速构建自己的 J2EE 应用,利用其提供的各种框架和技术,高效地开发出高质量的软件产品。AppFuse 不仅是一个框架,更是一个学习 J2EE 技术的良好起点。

    APPFUSE工具研究.doc

    AppFuse分为1.x和2.0两个主要版本,其中2.0版是重构建的,采用了Maven 2作为构建工具,而1.x版本则使用Ant。 Maven 2的引入带来了许多优势,包括自动下载依赖项、简化维护(因为所有组件可以一次编译)以及方便最终...

    使用 AppFuse 快速构建 java

    ### 使用AppFuse快速构建Java应用 #### 一、概述 在现代软件开发中,快速构建应用程序的能力至关重要。特别是在Java领域,有许多工具可以帮助开发者提高效率,其中AppFuse就是一个强大的开源框架,旨在加速Java...

    Appfuse开发教程.rar

    Appfuse是一款开源的Java Web应用框架,它旨在简化开发过程,提供一个快速开发基础Web应用程序的平台。Appfuse使用了Maven作为构建工具,结合Spring、Hibernate、Struts2等流行框架,为开发者提供了一个标准的架构...

    万恶的Appuse-----Appuse2.X在MyEclipse之中的部署问题

    Appfuse是一个开源项目,它提供了一种快速构建Java Web应用程序的方法。它基于Maven构建系统,结合了Spring、Hibernate等流行框架,旨在简化开发流程,特别是对于初学者来说,Appfuse提供了一个模板化的方式来创建新...

    AppFuse

    它支持多种流行的开源工具和技术框架,如Ant、XDoclet、Spring、Hibernate、Struts等,这些技术的集成使得开发者可以快速构建出符合最佳实践的应用程序。 #### 二、历史与发展 AppFuse最初作为一个示例应用程序...

    appfuse 学习笔记

    ### Appfuse 学习笔记 #### 一、Appfuse 简介 Appfuse 是一个开源框架,... mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modular-struts -DremoteRepositories=...

    AppFuse资料整理.chm

    AppFuse资料整理.chm AppFuse 整理 chm java 辛苦 个人学习收集网上资料辛苦整理而成

    MAVEN 搭建APPFUSE

    mvn archetype:generate -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modern-webapp -DarchetypeVersion=&lt;版本号&gt; ``` 这里,你需要替换`&lt;版本号&gt;`为当前AppFuse的版本。 步骤4:...

    Appfuse常用命令.doc

    AppFuse 是一个开源项目,它提供了一种快速构建基于Java Web应用的方式。它结合了多种框架和技术,如Spring、Hibernate、Struts等,简化了开发流程。文档中提到的是AppFuse中与Maven相关的常用命令,特别是针对...

Global site tag (gtag.js) - Google Analytics