工程说明
这是一个为技术服务部L2团队搭建的golang运维工具开发框架,采用gin+gorm+logrus,仿照springmvc的架构对业务进行分层:(通用日志配置在代码中耦合,尚未拆分)
- router负责路由映射,需要在main函数中进行注册
- controller层负责根据router层的路由分发,接受前端请求,调用service层进行业务处理
- service层只负责业务逻辑处理,如需操作数据库,可调用dao层,数据库事务等可在该层进行控制
- dao层负责数据库的curd操作,单一职责
- model层负责定义struct结构体(类比java的pojo或bean)
- utils负责定义通用的工具类
目录结构
├── config目录 # 存放项目yaml配置的目录(如数据源的配置等)
├── controller目录 # 路由控制器,只负责路由的接受处理
├── dao目录 # 负责数据库的curd操作
├── datasource目录 # 数据库初始化
├── logs目录 # 程序日志目录(rotate日志)
├── model目录 # 存放struct的目录
├── router目录 # 路由模块定义的目录
├── service目录 # 所有的业务逻辑在该目录定义
├── utils目录 # 所有的通用工具类在此定义
├── go.mod # go mod tidy
└── main.go # 程序主入口
代码链路
router定义路由 ---> controller层定义路由的handler ---> 调用service层的业务逻辑 ---> 调用dao层的数据库curd ---> 依赖model层的数据库映射
config.yaml说明
待补充
启动服务
进入主目录
cd cloud-ops
根据go.mod安装所有的依赖
go mod tidy