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

相关推荐
LYFlied2 小时前
从 Vue 到 React,再到 React Native:资深前端开发者的平滑过渡指南
vue.js·react native·react.js
80530单词突击赢2 小时前
JavaWeb进阶:SpringBoot核心与Bean管理
java·spring boot·后端
B站_计算机毕业设计之家2 小时前
豆瓣电影数据采集分析推荐系统 | Python Vue Flask框架 LSTM Echarts多技术融合开发 毕业设计源码 计算机
vue.js·python·机器学习·flask·echarts·lstm·推荐算法
爬山算法3 小时前
Hibernate(87)如何在安全测试中使用Hibernate?
java·后端·hibernate
WeiXiao_Hyy3 小时前
成为 Top 1% 的工程师
java·开发语言·javascript·经验分享·后端
苏渡苇3 小时前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·设计模式·学习方法·责任链模式
long3163 小时前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
xjt_09014 小时前
基于 Vue 3 构建企业级 Web Components 组件库
前端·javascript·vue.js
rannn_1114 小时前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
我是伪码农4 小时前
Vue 2.3
前端·javascript·vue.js