「Java开发指南」如何自定义Spring代码生成?(一)
搭建用户经常发现自己对生成的代码进行相同的修改,这些修改与个人风格/偏好、项目特定需求或公司标准有关,本教程演示自定义代码生成模板,您将学习如何:
- 创建自定义项目
- 修改现有模板来包含自定义注释
- 使用JET和Skyway标记库中的标记
- 配置项目来使用自定义
MyEclipse技术交流群:742336981 欢迎一起进群讨论
创建自定义项目
在支持Spring的MyEclipse中,您可以创建一个定制项目来自定义一套完整的代码生成模板。这个标准的Eclipse项目包含所有可用的JET模板,默认情况下,scaffolding功能使用已安装的MyEclipse for Spring插件中的标准模板,但是可以很容易地配置该项目,来使用一个或多个Customization项目作为模板源。
1. 选择File>New>Other,展开MyEclipse Customization,然后选择MyEclipse for Spring Customization Project,点击Next。

2. 输入AcmeCustomizations作为项目名,然后点击Finish。

自定义模板
几乎所有生成的Spring scaffolding构件都来自使用JET实现的模板,JET是Eclipse M2T项目中的模板引擎,用于使用类似于JavaServer Pages (JSP)的方法将元数据/模型转换为具体代码。
1. 在资源管理器中展开自定义项目,代码生成模板分组到几个文件夹中。

2. 打开名为Service.jet的模板,Spring服务的模板位于com.skyway.integration.service.webservice/templates文件夹中。

模板有三个主要部分:
用于编译模板的JET指令——JET模板被编译成Java代码,第一个JET指令指定编译参数(即:包名和类名)。
用于导入JET标记库的JET指令——JET标记库与JSP标记库非常相似,每个模板都必须指定将要使用哪些标记库。这个特殊的模板使用JET(org.eclipse.jet.*)和Skyway(org.skyway.integration.*)提供的库。
模板主体——这是模板的实际主体,用于指定生成的输出。

将以下代码块添加到模板中,它应该立即添加到第10行(<%taglibprefix=”jaxws”…. %>)。
<%@taglib prefix="f" id="org.eclipse.jet.formatTags"%>
//**********************************************************
// <sw:javaType select="$model" />
//
// Author: TODO: update developer's name in comment header
// Creation date: <f:formatNow pattern="MM/dd/yyyy" />
//
// Copyright (C) 2013 Acme Corporation
//*********************************************************
查看模板自定义,更新后的模板将向所有生成的服务实现类添加注释块,注释块包括静态内容(即标签、版权声明)和动态内容(名称、日期),目标是在注释块中包含开发人员的名字。由于不能动态地派生开发人员的名称,因此将在源代码中发出一个Eclipse TODO任务,以提醒开发人员需要对其进行设置。以下是一些值得注意的事情:
- 为了在标题中包含当前日期,使用JET声明包含了org.eclipse.jet.formatTags标记。
- 类名将使用org.skyway.integration.java.spring.skywaySpringCodeGenTags标签发送到注释块中。

未完待续,下期精彩继续......
浙公网安备 33010602011771号