筒濂 发表于 3 天前

Gin入门(3)-解构项目,从viper和配置文件开始

起因

跟着UP敲完代码之后感觉什么都没搞懂,只得其型不得其意,这样的学习结果毋庸置疑是没有用的,只会陷入教程地狱的困境,所以我决定从头阅读一遍源码,结合文档和大模型,来学习一遍
准备工作

由于跟写的时候是有边用git进行版本控制的,在完工之后我便将云服务器上的工程上传到我的仓库里了:该项目仓库链接
现在我将其拉到GoLand里,因为个人觉得GoLand阅读源码要比Vscode来得更轻松一些

项目结构

可以看到整个项目结构其实很简洁,其本身就是一个很轻量级的后端项目而已
点击查看结构|_config: 端口、数据库配置文件和代码
|_controller: 控制器代码
|_global: 全局变量管理代码
|_middlewaves: 中间件(登录验证等)
|_models: 数据模型代码
|_router: 路由管理代码
|_utils: 工具和辅助代码
|_go.mod: go包管理
|_go.sum: go包管理
|_main.go: 程序启动入口
|_README.md: 文档第一份代码main.go
毫无疑问这份代码的入口是main.go程序,想要查看代码我们就从这里开始
点击查看main.gopackage mainimport (        "context"        "exchangeapp/config"        "exchangeapp/router"        "log"        "net/http"        "os"        "os/signal"        "time")func main() {        config.InitConfig()        r := router.SteupRouter()        port := config.AppConfig.App.Port        if port == "" {                port = ":8080"        }        srv := &http.Server{                Addr:    port,                Handler: r,        }        go func() {                if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {                        log.Fatalf("listen: %s\n", err)                }        }()        quit := make(chan os.Signal, 1)        signal.Notify(quit, os.Interrupt)
页: [1]
查看完整版本: Gin入门(3)-解构项目,从viper和配置文件开始