使用 AppFuse 快速构建 J2EE 应用

时间:2007-02-05 16:05:42   来源:  作者:沈锐  点击:次  出处:技术无忧
关键字:AppFuse 增删查改 事务控制 Windows


用 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 中会看到如下的目录结构:

d531589fb7f02bab5b6d15132c22adf1.gif
图 4. “install-detailed” 执行后的 Eclipse
 

表 2 列出了 "install-detailed" 生成的主要文件。


表 2. "install-detailed" 生成的主要文件列表
文件 说明
myapp/src/dao/org/appfuse/dao/hibernate/applicationContext-hibernate.xml 在其中增加了 employeeDao 的声明
myapp/src/dao/org/appfuse/hr/model/Employee.java Employee 类 -- Java Bean
myapp/build/dao/gen/org/appfuse/hr/model/Employee.hbm.xml Employee 类的 Hibernate 映射文件
myapp/src/dao/org/appfuse/hr/dao/EmployeeDao.java 定义关于 employee 的 dao 层的操作
myapp/src/dao/org/appfuse/hr/dao/hibernate/EmployeeDaoHibernate.java EmployeeDao 的 Hibernate 实现类
myapp/src/service/org/appfuse/service/applicationContext-service.xml 在其中增加了employeeManager的声明
myapp/src/service/org/appfuse/hr/service/EmployeeManager.java 定义关于 employee 的 service 层的操作
myapp/src/service/org/appfuse/hr/service/impl/EmployeeManagerImpl.java EmployeeManager 的实现类
myapp/src/web/org/appfuse/hr/webapp/action/EmployeeForm.java employee 的添加/修改页面对应的 tapestry 类
myapp/src/web/org/appfuse/hr/webapp/action/EmployeeList.java employee 的列表页面对应的 tapestry 类
myapp/test/dao/org/appfuse/hr/dao/EmployeeDaoTest.java employee dao 类的测试用例
myapp/test/service/org/appfuse/hr/dao/EmployeeManagerTest.java employee service 类的测试用例
myapp/test/web/org/appfuse/hr/webapp/action/EmployeeFormTest.java employee 添加/修改页面类的测试用例
myapp/test/web/org/appfuse/hr/webapp/action/EmployeeFormTest.java employee 列表页面类的测试用例
myapp/web/pages/hr/employeeForm.html employee 添加/修改页面 html 模版文件
myapp/web/pages/hr/employees.html employee 列表页面 html 模版文件
myapp/web/pages/hr/employeeForm.page employee 添加/修改页面规格文件
myapp/web/pages/hr/employees.page employee 列表页面规格文件

    不过,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">
|-- 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>
...

 讨论 http://bbs.pc51.net


 2/5   |‹ ‹‹ 1 2 3 4 5 ›› ›|

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

特别推荐