yuanxin
介绍
这是一个基于 Gin、GORM 和 Gen 的 Web 开发脚手架。它旨在提供快速开发体验,同时减少模板代码的编写。通过约定大于配置的理念,只需配置好 YAML 文件,即可快速启动 Web 服务,让您更专注于业务开发。
package main
import (
"yqcls/internal/repository"
"yqcls/internal/router"
"gitee.com/botaoshow/yuanxin"
"gitee.com/botaoshow/yuanxin/web/common/database"
"github.com/gin-gonic/gin"
)
func RunApp() {
yuanxin.OnStart(func() {
database.InitMysql()
repository.SetDefault(database.Db)
})
yuanxin.OnClose(func() {
database.CloseMysql()
})
yuanxin.RunApp(func(r *gin.Engine) {
router.SetupRouter(r)
})
}
func main() {
RunApp()
}
软件架构
- Gin Web 框架:提供高性能的 HTTP 服务。
- GORM ORM 库:简化数据库操作。
- Gen 代码生成工具:减少重复的 CRUD 代码编写。
- YAML 配置文件:支持配置化管理,便于快速调整服务设置。
- 模块化设计:便于扩展和维护。
技术特性
- 🚀 基于 Gin 的高性能 Web 框架。
- 🗄️ 支持 GORM 数据库操作。
- ⚡ 使用 Gen 自动生成 CRUD 代码。
- 🔧 采用约定优于配置的设计理念。
- 📦 提供开箱即用的企业级脚手架。
- 🛡️ 内置中间件支持,包括日志、认证、限流等功能。
快速开始
方式一:使用 go get
go get -u gitee.com/botaoshow/[email protected]
方式二:手动导入项目
- 确保将项目下载到本地目录。
- 使用
mod 或 work 创建您的项目。
- 在
go.work 文件中导入项目:
go 1.24.2
use (
.
D:/code/demo/go_demo/yuanxin/web
)
- 创建
conf.yaml 文件,示例如下:
# conf.yaml
server:
port: ":8080"
mode: "debug"
database:
driver: "mysql"
host: "127.0.0.1"
port: "3306"
username: "root"
password: "123456"
database: "yqcls"
charset: "utf8mb4"
maxIdleCount: 10
maxOpenConns: 100
connMaxLifetime: 60
redis:
host: "127.0.0.1"
port: "6379"
password: ""
db: 1
poolSize: 20
minIdleConns: 5
maxConnAge: 30
poolTimeout: 30
log:
level: "debug"
path: "./logs"
jwt:
secret: "123456"
-
创建 main.go 文件。
-
运行 go mod tidy 刷新项目。
-
运行项目即可。
提示:这里添加了一个默认路由用于测试,并初始化了数据库,请根据实际情况修改。
特技
更多详情,请访问我们的官方博客。