仓库:MuZiCul/-prod-view(原创)· 语言:Java 17 (Spring Boot 3.5.8) + Vue · 定位:企业级单体应用模板/脚手架
nova 是一个基于 Spring Boot 3 和 Vue 的单体应用模板,提供应用所需的基础能力(用户、角色、权限、部门、认证),支持基于该模板快速构建应用。
pom.xml)| 项 | 版本/说明 |
|---|---|
| 父 POM | spring-boot-starter-parent 3.5.8 |
| JDK | Java 17 |
| GroupId | org.zen,ArtifactId nova,packaging=pom(父工程) |
| ORM | MyBatis-Flex 1.11.4 |
| Excel | FastExcel 1.2.0 |
| API 文档 | SpringDoc 2.8.16(OpenAPI 3) |
| 工具 | Lombok |
值得注意的是选型用了 MyBatis-Flex(而非 MyBatis-Plus),以及 FastExcel(阿里出的 Excel 处理库)。
<modules>
<module>nova-server</module> <!-- 启动入口与配置 -->
<module>nova-platform</module> <!-- 平台支撑:安全认证、钉钉 SSO -->
<module>nova-system</module> <!-- 系统管理:用户、角色、权限、部门 -->
<module>nova-common</module> <!-- 公共组件 -->
<module>nova-domain</module> <!-- 领域模型与 Mapper -->
<module>nova-admin</module> <!-- 管理端接口 -->
<module>nova-portal</module> <!-- 门户端接口 -->
</modules>
前端部分(非 Maven 模块):
- nova-ui — Vue 前端(admin + portal 双端)
- external-system-ui — 外部系统前端
nova-ui (前端)
↓ HTTP
nova-admin / nova-portal (接口层:按端分离)
↓
nova-system (业务层:用户/角色/权限/部门)
↓
nova-domain (领域层:实体 + Mapper)
↓
nova-platform (横切:认证、SSO)
↓
nova-common (基础设施:通用组件、工具类)
设计要点:
- 接口层按"端"分离(admin 管理端 / portal 门户端),避免不同端接口混杂
- 领域层独立(domain),实体与 Mapper 集中管理
- 平台层横切(platform),认证与单点登录能力可复用
- 环境化配置:通过环境变量 DATA_SOURCE_URL / DATA_SOURCE_USERNAME / DATA_SOURCE_PASSWORD 注入数据源,符合 12-Factor 应用规范
# 启动后端(需先配置环境变量 DATA_SOURCE_URL / DATA_SOURCE_USERNAME / DATA_SOURCE_PASSWORD)
./mvnw spring-boot:run -pl nova-server
# 启动前端
cd nova-ui && npm install && npm run dev
-pl nova-server只构建启动模块,依赖模块从本地仓库加载。
这是一个 Spring Boot + Vue 的单体应用模板:
做 Spring Boot 单体项目时,这个模板可以直接拿来改,带认证授权的后台 + 门户双端都能用。