代码拉取完成,页面将自动刷新
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)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。