1 Star 0 Fork 0

qszhang/vblog

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.go 1.87 KB
一键复制 编辑 原始数据 按行查看 历史
qszhang 提交于 2023-10-18 21:06 . 添加优雅关闭服务
package main
import (
"context"
"log"
"os"
"os/signal"
"syscall"
"time"
_ "gitee.com/zhang-qunshan/vblog/apps"
"gitee.com/zhang-qunshan/vblog/ioc"
"gitee.com/zhang-qunshan/vblog/protocol"
"gitee.com/zhang-qunshan/vblog/conf"
)
func main() {
// 1. 加载配置
err := conf.LoadConfigFromToml("etc/config.toml")
if err != nil {
log.Fatal(err)
}
// 2, 初始化控制器
// 手动传递依赖关系, 手动管理对象依赖
// 2。1 user controller
// userServiceImpl := userImpl.NewUserServiceImpl()
// // 2.2 token controller
// tokenServiceImpl := tokenImpl.NewTokenServiceImpl(userServiceImpl)
// // 3, 初始化Api Handler
// tokenApiHandler := api.NewTokenApiHandler(tokenServiceImpl)
// // 4 启动http协议服务器,
// r := gin.Default()
// tokenApiHandler.Registory(r)
// fmt.Println("启动http服务器器......")
// err = r.Run("127.0.0.1:8090")
// if err != nil {
// log.Fatal(err)
// }
// 通过Ioc来完成依赖的封装, 完成了依赖的倒置(ios 依赖对象注册)
if err := ioc.Controller().Init(); err != nil {
log.Fatal(err)
}
//初始化APi Handler
if err := ioc.ApiHandler().Init(); err != nil {
log.Fatal(err)
}
// 跑在前台的http server
// r := gin.Default()
// ioc.ApiHandler().RouteRegistry(r.Group("/api/vblog"))
// fmt.Println("启动http服务器器......")
// err = r.Run("127.0.0.1:8090")
// if err != nil {
// log.Fatal(err)
// }
//跑正在后台的http server
httpServer := protocol.NewHttpServer()
go func() {
if err := httpServer.Run(); err != nil {
log.Fatalf("start http server error, %s \n", err)
}
}()
// 处理信号量
ch := make(chan os.Signal, 1)
signal.Notify(ch, syscall.SIGTERM, syscall.SIGINT, syscall.SIGHUP, syscall.SIGQUIT)
sn := <-ch
log.Println(sn)
ctx, cf := context.WithTimeout(context.Background(), 30*time.Second)
defer cf()
httpServer.Close(ctx)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhang-qunshan/vblog.git
[email protected]:zhang-qunshan/vblog.git
zhang-qunshan
vblog
vblog
master

搜索帮助