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 ⭐ 和贡献!

相关推荐
老毛肚1 天前
软件测试期末考试
vue.js
fox_lht1 天前
15.3.改进我们之前的输入、输出项目
开发语言·后端·学习·rust
大鸡腿同学1 天前
用 AI 肝了一个星期的智能客服助手,看看怎么个事
后端
IT_陈寒1 天前
Python的os.path.join居然能这么坑?
前端·人工智能·后端
张忠琳1 天前
【Go 1.26.4】Golang Channel 深度解析
开发语言·后端·golang
杨若瑜1 天前
本地开发环境慢?localhost的锅!
vue.js
Rain5091 天前
2.1 Nest.js 项目初始化与模块化架构
开发语言·前端·javascript·后端·架构·数据分析·node.js
cjp5601 天前
009. ASP.NET WEB API 用户关联esp32设备
前端·后端·asp.net
贺国亚1 天前
Text-to-SQL与Analytics-Agent
后端