基于Spring initializr实现自己的项目模板
文章目录
介绍
先前通过 Apache Maven Archetype 生成了一个项目脚手架1.0版本,模板比较固定,无法根据需要进行灵活定制,经过调研后,发现可基于Spring Starter项目进行定制,脚手架2.0版本也就应运而生。
目标
- 快速创建最小可运行工程
- 基础组件依赖管理
- 版本管理
- 帮助信息
- 按需生成项目结构
最终效果


实现
主流程
获取配置
通过请求服务根路径获取脚手架信息,对应接口代码

如请求: http://localhost:8080 会返回以下内容信息

接口返回了服务支持配置的元数据信息
生成工程代码
用户选择配置相应功能后,点击生成按钮,会调用 http://localhost:8080/start.zip 接口将配置信息传给服务,服务根据信息生成代码

核心功能实现
项目工程由以下几方面组成:
- application.yml文件
- 工程目录(controller, servier…)
- auto_publish相关目录
- trpc_java.yaml文件
- 配置相关
- 日志配置文件
- web服务相关
- httpApi接口
- httpApi实现类StartController
- Maven依赖管理
- 主启动程序自定义
- 测试辅助开发相关自定义
- applicationTest

依赖管理
根据现有常用的 Peacock 框架功能包,依赖管理配置以下模块:
- Starter
- Integration
- Provider
- Data
- Testing
- MQ
- Job
实践
生成一个最小可运行Web应用
命令行快速生成
|
|
具体的依赖库元信息可以在根路径下请求获得,具体依赖信息为dependencies值对应id的值
IDEA中生成
Idea配置脚手架地址
使用本地地址如: http://localhost:8080

配置工程信息
填写好相关的业务信息与版本信息
选择依赖模块
Web应用需选择以下模块:
- Peacock Trpc Starter
- Integration Web
- Integration Common
- Peacock Test

选择完成后点击 生成 按钮生成代码
启动
在生成的代码中找到 TrpcServerApplicationTests 测试类,配置启动参数,运行 main 方法启动Web服务

启动参数如下:
|
|

验证
服务启动后,请求 http://localhost:18080 返回 “start pong” 则证明启动成功
