大约两年前私下编写一个wiki时使用的代码生成工具,最近想继续这个wiki项目(
http://sourceforge.net/projects/txdoc),也顺便吧这个代码生成工具整理出来。
PPT见:
http://www.iteye.com/topic/95580
eclipse项目,文件太大,只好分成三分上传。
其中,代码生成工具及一些基础类库在web/WEB-INF/lib/xdoclet-xidea-plus.jar文件中(附源码)
引用
目录结构
src/main: 源文件
src/gen: 生成的源文件及配置文件
src/test: 测试类
build: ant 脚本(build.xml)、ant配置、构建过程的临时目录(temp)
web: web根目录
lib: 编译器附加类库(如ant任务需要的lib)
doc: 文档目录
doc/xdoclet: xdoclet参考文档
一.创建持久类:
1.改类为一个有诺干属性的简单java类
2.为持久类打上hibernate标记:
必要标记:hibernate.class(指定该类为持久类,无必选属性,可选属性参考xdoclet文档)
hibernate.id (指定持久类主键,必选属性generator-class,指定主键生成算法,常用算法有uuid.hex、hilo、assigned....)
常用标记:hibernate.property(指定持久属性,无必选属性)
hibernate.cache(预定义查询,必选属性 name,query)
hibernate.one-to-many,hibernate.many-to-one等,指定对象关系,比较复杂,建议先看hibernate官方文档、xdoclet文档
3.打开项目下build/build.xml、运行hibernate任务,该任务将生成hibernate映射文件、hibernate dao实现、hibernate的spring配置,及dao配置。
其中hibernateDao实现常用DAO方法,并定义以后将使用的常量:如预定义查询名、预定义查询参数名、集合名,等等。
4.持久类的路径一般为:src/main/{package}/po/{TableName}.java ,生成的DAO路径为src/main/{package}/dao/{TableName}Dao.java
二.创建Spring服务实现:
1.Spring服务实现无任何接口约束,普通java对象即可。
2.将需要使用的hibernate Dao 声明为该服务类的属性(spring.property标记)。
3.为服务类打上spring标记:
必要标记:spring.bean(parent:对于所有需要spring事务支持的javabean,必须声明parent属性值为"transactionProxy";
生成工具将根据类名为spring bean自动生成默认 id,)
常用标记:spring.property(spring 属性)。
spring.transaction(对于parent=transactionProxy的bean,需要为需要声明是事务支持的方法声明事务属性,具体请参考xdoclet文档)
4.打开项目下build/build.xml、运行spring任务,该任务将生成spring配置文件。
三.创建XWork Action,一般为*/action/*.java
1.Action需要实现com.opensymphony.xwork.Action,如果我们需要xwork的国际化支持,继承ActionSupport基类,必然需要实现TextProvider接口。
2.为Action打上xwork标记:
必要标记:xwork.package(必要属性有name),
xwork.action(必要属性name,表示某方法为Action方法,将映射到一个具体的url地址),
xwork.result(必要属性name,该标记定义在定义了xwork.action的地方,可定义多个,表示该Action的结果集)
常用属性: xwork.spring-ref (属性的set方法上,其值将从spring context中获取)
3.为Action制作结果集页面:
若未在 xwork.result标记中定义value属性,其值未ActionName+"-"+resultName,若有大写字符,将用"-"隔开,并转小写;
value值即未页面地址。可以为jsp,velocity,xsl等等。
4.打开项目下build/build.xml、运行xwork任务,该任务将生成xwork配置文件。
分享到:
相关推荐
Java框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架...
1、资源内容:Java工程示例的SMC - 状态机的基本格式说明及使用示例;...3、参考链接:资源配套说明可参考链接 - [SMC - 状态机代码生成工具]:https://blog.csdn.net/weixin_44462773/article/details/123089749
Java项目代码生成工具是一种高效的开发辅助工具,它利用模板引擎技术来自动化生成常见的Java代码,如控制器(Controller)、服务(Service)以及其实现类(ServiceImpl)。在这个特定的案例中,工具使用了FreeMarker...
初学者往往需要花费大量时间在编写基础代码上,而代码生成器则可以帮助他们快速构建项目框架,理解软件工程的三层架构模式。这三层结构通常包括: 1. **表现层(Presentation Layer)**:也称为前端或用户界面,...
在软件工程中,代码生成器是一种非常实用的辅助工具。它通过分析数据库模型、UML图或其他设计文档,自动生成对应的业务逻辑代码、数据访问层代码以及用户界面代码。这大大减少了手动编码的工作量,使开发者能更专注...
在软件工程中,代码生成器广泛应用于快速原型、数据库访问层、ORM框架、Web服务接口等多种场景。 本资源提供的是一个完整的代码生成器的源码,这通常包括以下几个主要组成部分: 1. **模板引擎**:模板引擎是代码...
动软代码生成器是一款强大的工具,专为程序员和开发团队设计,旨在提高开发效率和代码质量。通过自动化的代码生成,它能够帮助开发者快速构建基于设计模式的应用程序,减轻重复劳动,让开发者有更多时间专注于业务...
STM8S代码生成器是一款专为STM8系列微控制器(MCU)设计的实用工具,主要功能是自动生成适用于STM8S芯片的C语言代码。STM8S是意法半导体(STMicroelectronics)推出的一款8位微控制器,广泛应用在各种嵌入式系统中,...
在现代软件工程中,代码生成器的运用越来越广泛,尤其是在大数据处理、Web应用开发、数据库建模等领域。 代码生成器的工作原理通常是通过读取模板或者元数据,然后根据这些信息动态生成符合特定规范的代码。元数据...
压缩包文件"GenCode.zip"可能包含了这个代码生成器的源代码或者生成的示例代码。"基于这个通用权限整的、用法"可能是关于如何使用这个代码生成器以及其在通用权限管理场景下的应用说明。 使用这样的代码生成器可以...
用户可以通过查看此文本文件,获取更具体的代码生成示例,以便更好地利用这个工具。 总的来说,"matlab代码快速生成器"是一个强大的辅助工具,尤其对于那些需要频繁进行积分、微分和矩阵运算的MATLAB用户来说,它...
深入研究 Codematic2 Src 的源码,不仅可以提升对代码生成器内部机制的理解,还能为自定义代码生成规则、扩展新功能或优化现有功能提供可能。同时,这也是一个学习软件工程、数据库设计和模板编程的好机会。通过阅读...
C#代码生成器是一种工具,它能够自动生成C#编程语言的源代码,极大地提高了开发效率,减少了手动编写重复代码的工作量。这类工具通常基于模板或者元数据来创建代码,适用于构建数据库映射类、实体模型、接口实现、...
7. **学习资源**:许多AVR代码生成工具会附带教程、示例代码和社区支持,帮助用户快速掌握使用方法并提高编程技能。 在压缩包中的"avr.exe"文件,很可能是这个AVR代码生成工具的可执行程序。在安装和使用该工具时,...
懒人C51代码自动生成器的工作原理是通过图形用户界面(GUI)来帮助用户构建程序结构,例如设置I/O口、定时器、中断等,然后自动生成对应的C51源代码。这种方式极大地降低了编程的复杂性,使得初学者无需深入了解底层...
【超级代码生成器】是一款专为C#编程语言和Nhibernate框架设计的高效工具,旨在...通过【BuilderCode】这一文件名,我们可以推测这是该工具生成的代码示例或配置文件,用于展示和指导用户如何使用此工具进行代码生成。
通过这份资料,学习者不仅可以了解如何构建一个代码生成器,还可以深入理解Java编程和软件工程中的自动化工具使用。Java代码生成器的主要功能可能包括创建数据库表的实体类、DAO(数据访问对象)层、Service层以及...
7. **示例项目“demo”**:虽然没有提供具体的内容,但一个名为“demo”的文件可能是一个示例项目,用于演示如何使用这个代码生成工具。它可能包含了配置文件、模板文件以及运行生成的样例代码。 总的来说,Java...
飞思卡尔的OSEK代码生成工具2是为开发者设计的,帮助他们更高效地创建符合OSEK规范的嵌入式软件。 这个工具的主要功能可能包括以下几个方面: 1. **自动代码生成**:工具能够根据用户定义的模型或规格,自动生成...