基于 JSON+自定义模板生成代码
2025/5/14大约 2 分钟开发指南jsoncustome template
提示
要求 sponge v1.11.0+ 版本
概述
基于自定义模板和字段生成代码是一种灵活且高效的方式。由于模板代码和字段完全由用户自定义,因此适合生成常用的可重复任意类型代码,例如脚手架代码、微服务代码 、配置文件 、部署脚本等
创建自定义字段
自定义字段是模板生成代码的输入参数。首先,需要将字段名称和对应的值定义在一个 JSON 文件中,例如 fields.json
:
{
"ServerName": "web",
"PackageName": "main",
"HandlerName": "helloworld",
"Port": 8080
}
每个字段将对应模板代码中的占位符。
创建自定义模板代码
模板代码是代码生成的核心,基于 Go 的 text/template
库实现。因此,建议先熟悉其基本语法规则,语法规则很简单,几分钟即可熟悉,点击查看章节:Go text/template 基本语法规则。
创建模板文件时,可以使用固定文件名(如 main.go
)或变量文件名(如 {{.ServerName}}.go.tmpl
)。以下是一个示例模板文件内容:
package {{.PackageName}}
import (
"net/http"
)
// {{.HandlerName}} handles {{.HandlerName}} requests
func {{.HandlerName}}(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, world!"))
}
func main() {
http.HandleFunc("/{{.HandlerName}}", {{.HandlerName}})
if err := http.ListenAndServe(":{{.Port}}", nil); err != nil {
panic(err)
}
}
将模板文件存放在一个目录(如 template
)中,可以包含多个模板文件和子目录。
生成代码
在终端执行命令sponge run
进入生成代码 UI 界面,以下是具体操作步骤:
- 进入左侧菜单栏 【生成自定义代码】 → 【JSON】;
- 填写以下参数(鼠标悬停在参数旁边的问号
?
上可以查看参数说明):- 自定义模板目录:如
/home/user/template/web
- 自定义字段:如
fields.json
- 自定义模板目录:如
- 点击 下载代码 按钮下载生成的代码,如下图所示:

等价命令
sponge template field --tpl-dir=/home/user/template/web --fields=fields.json
提示
点击按钮查看模板信息
可以查看字段信息,这些字段信息对应模板的占位符,可以更方便的编写模板代码。