mldong-goframe:基于 GoFrame + Vben5 的全栈快速开发框架正式开源!

🌟 项目简介

mldong-goframe 是一款基于 GoFrame 后端框架 + Vben5 前端管理系统的企业级全栈快速开发框架,专为需要快速构建中后台系统的开发者设计。通过模块化设计和代码生成器,可节省 70% 以上的重复编码工作。

目录结构

bash 复制代码
api/
└── user/
    ├── user_api.go     # 接口定义
    ├── user_dto.go     # DTO对象
    └── user_vo.go      # VO对象
└── role/
    ├── role_api.go     # 接口定义
    ├── role_dto.go     # DTO对象
    └── role_vo.go      # VO对象

internal/
└── modules/
    └── sys/                       # 系统管理模块
        ├── controller/            # 控制层
        │   ├── user_controller.go
        │   └── role_controller.go
        ├── dao/                   # 持久层,对某一张表的增、删、改查等操作
        │   ├── user_dao.go
        │   └── role_dao.go
        ├── entity/                # 实体类,和数据库表一一对应
        │   └── user.go 
        ├── logic/                 # 业务逻辑实现层
        │   ├── user_logic.go
        │   └── role_logic.go
        └── service/               # 业务逻辑接口层
        │   ├── user_service.go
            └── role_service.go

🛠️ 核心功能

后端能力(GoFrame)

  • RBAC 权限系统:精细化按钮级权限控制
  • JWT 认证:支持多端登录鉴权
  • 代码生成器:一键生成 CRUD 代码(支持覆盖模式)
  • Swagger 集成:自动生成 API 文档

前端能力(Vben5)

  • 🎨 现代化 UI:基于 Ant Design Vue 3.0
  • 📱 响应式布局:适配 PC/平板/手机
  • 🔄 动态路由:根据权限自动生成菜单
  • 🌐 国际化:支持中英文切换

🏗️ 技术栈

后端技术

组件 用途 版本
GoFrame Web 框架 v2.9.0
Mysql 数据库 v5.7+、v8.0+
JWT 身份认证 v5.0
Swagger API 文档 v2.0

前端技术

组件 用途
Vue 3 前端框架
Vben5 企业级管理系统框架、全新升级,开箱即用,简单高效

🎯 适用场景

  1. 企业内部管理系统(OA/CRM/ERP)
  2. SaaS 平台后台
  3. 快速原型开发
  4. 全栈技术学习

💡 已内置完整系统管理模块:

👥 用户管理 | 🛡️ 角色管理 | 🌲 菜单管理

🏢 部门管理 | 💼 岗位管理 | 📖 数据字典


🚀 快速开始

1. 环境准备

bash 复制代码
# 安装依赖
go mod tidy

2. 启动项目

bash 复制代码
go run main.go

访问 http://localhost:18080/swagger

3. 登录凭证

plain 复制代码
账号:superAdmin  
密码:123456

💡 功能截图

接口文档

登录

工作台

用户管理

✨ 特色功能

代码生成

区别于gf自带的代码生成,详见:https://gitee.com/mldong/mldong-goframe/blob/master/internal/cmd/gen.go

bash 复制代码
# 生成 sys_dept 表相关代码(不覆盖)
go run main.go gen -t sys_dept

# 强制覆盖生成
go run main.go gen -t sys_dept -c 1

权限控制

go 复制代码
// 中间件自动校验权限
func AuthMiddleware(r *ghttp.Request) {
	// 详见:https://gitee.com/mldong/mldong-goframe/blob/master/internal/cmd/cmd.go
}

控制层自动注册

go 复制代码
//例:internal\modules\sys\controller\user_controller.go
func init() {
	// 注册控制器时自动注入依赖
	utility.RegisterController(&UserController{
		// userService: utility.MustResolve(service.UserServiceType).(service.IUserService),
		// 控制层使用强依赖logic的方式,保证逻辑层的init方法比controller的方法先执行
		userService: utility.MustResolve(service.UserServiceType).(*logic.UserLogic),
	})
}

自注册后,不再需要一个个类在启动类中注册

go 复制代码
s.Group("/", func(group *ghttp.RouterGroup) {
				//group.Middleware(ghttp.MiddlewareHandlerResponse)
				group.Middleware(ErrorHandlerMiddleware, AuthMiddleware)
				// group.Bind(
				// 	controller.NewUserController(),
				// 	controller.NewRoleController(),
				// 	controller.NewAuthController(),
				// 	controller.NewPostController(),
				// )
				group.Bind(utility.GetControllers()...)
			})

业务逻辑自注册避免循环依赖

go 复制代码
//例:internal\modules\sys\logic\user_logic.go
func init() {
	// 注册服务实现
	utility.Register(service.UserServiceType, NewUserLogic())
}

user_logic.go中需要调用role_logic.go

go 复制代码
// internal/modules/sys/logic/user_logic.go
// 根据ID获取用户信息
func (logic *UserLogic) Detail(id string) (res userApi.UserVO, err error) {
	// 其他业务代码
	// 服务之间相互依赖,需要使用 utility 获取服务实例
	roleService := utility.MustResolve(service.RoleServiceType).(service.IRoleService)
	return userVO, err
}

role_logic.go中需要调用user_logic.go

go 复制代码
// internal/modules/sys/logic/role_logic.go
// 根据ID获取角色信息
func (logic *RoleLogic) Detail(id string) (res roleApi.RoleVO, err error) {
	// 其他业务代码
	// 服务之间相互依赖,需要使用 utility 获取服务实例
	userService := utility.MustResolve(service.UserServiceType).(service.IUserService)
	return roleVO, err
}

📚 学习资源

  1. 框架分层设计详解
  2. 代码生成器实战指南
  3. Vben5 前端适配指南

🌍 生态项目

项目名 描述 链接
mldong (SpringBoot) Java 版实现 Gitee
mldong-vben5 配套前端 Gitee
mldong-python Flask 实现版 Gitee

📢 立即体验

Gitee: gitee.com/mldong/mldo...

演示地址: www.mldong.com/?nav=online...

期待您的 Star ⭐ 和贡献!

相关推荐
David爱编程1 分钟前
Java 三目运算符完全指南:写法、坑点与最佳实践
java·后端
小白的代码日记30 分钟前
Springboot-vue 地图展现
前端·javascript·vue.js
学习编程的小羊36 分钟前
Spring Boot 全局异常处理与日志监控实战
java·spring boot·后端
Moonbit2 小时前
MoonBit 作者寄语 2025 级清华深圳新生
前端·后端·程序员
前端的阶梯2 小时前
开发一个支持支付功能的微信小程序的注意事项,含泪送上
前端·后端·全栈
咕噜分发企业签名APP加固彭于晏2 小时前
腾讯元器的优点是什么
前端·后端
AAA修煤气灶刘哥3 小时前
Swagger 用着糟心?试试 Knife4j,后端开发狂喜
后端·面试
kymjs张涛3 小时前
零一开源|前沿技术周刊 #11
前端·javascript·vue.js
anyup3 小时前
🚀 2025 最推荐的 uni-app 技术栈:unibest + uView Pro 高效开发全攻略
前端·vue.js·uni-app
bobz9653 小时前
MCP on windows
后端