golang web项目脚手架搭建
1、CLD分层:
a、controller层:控制层,服务的入口,负责处理路由,参数校验,请求转发。
b、logic层:业务逻辑层。通过了controller层到达这里的所有请求参数一定是合法的。业务逻辑和业务流程都在这一层。
c、dao层:主要负责与数据、存储。将下层存储以函数形式、接口形式暴露给logic层。
2、其他层
a、logger层:存放日志
b、model层:程序功能实现文件、以及数据库sql创建表语句等。
c、setting层:配置文件
d、routes层:路由层
初始化脚手架
1、main函数每次启动项目都要初始化配置、日志文件logger、mysql文件、redis、以及路由的启动
func main() {
if err := setting.Init();err != nil{
//错误语句
return
}
if err := logger.Init(setting.Conf.LogConfig); err!=nil{
//错误语句
return
}
defer zap.L().Sync() //此处为main函数结束后释放日志文件的语句
if err := mysql.Init(setting.Conf.MySQLConfig); err != nil{
//错误语句
return
}
defer mysql.Close() //main函数结束后释放 mysql连接,否则可能会放生内存泄漏
if err := redis.Init(setting.Conf.RedisConfig); err != nil{
//错误语句
return
}
defer redis.Close() //原理同上
if err := snowflake.Init(setting.Conf.StartingTime,setting.Conf.MachineID);err!=nil{