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

打印 上一主题 下一主题

主题 1622|帖子 1622|积分 4866

因由

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

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

项目结构

可以看到整个项目结构其实很简便,其本身就是一个很轻量级的后端项目而已
点击查看结构
  1. |_config: 端口、数据库配置文件和代码
  2. |_controller: 控制器代码
  3. |_global: 全局变量管理代码
  4. |_middlewaves: 中间件(登录验证等)
  5. |_models: 数据模型代码
  6. |_router: 路由管理代码
  7. |_utils: 工具和辅助代码
  8. |_go.mod: go包管理
  9. |_go.sum: go包管理
  10. |_main.go: 程序启动入口
  11. |_README.md: 文档
复制代码
第一份代码main.go
毫无疑问这份代码的入口是main.go程序,想要查看代码我们就从这里开始
点击查看main.go[code]package 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)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表