framework1/main.go

72 lines
2.1 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package main
import (
"github.com/Superdanda/hade/app/console"
"github.com/Superdanda/hade/app/http"
"github.com/Superdanda/hade/framework"
"github.com/Superdanda/hade/framework/provider/app"
"github.com/Superdanda/hade/framework/provider/config"
"github.com/Superdanda/hade/framework/provider/distributed"
"github.com/Superdanda/hade/framework/provider/env"
"github.com/Superdanda/hade/framework/provider/kernel"
"github.com/Superdanda/hade/framework/provider/log"
)
//func main() {
//core := gin.New()
//
//core.Use(middleware2.Recovery())
//core.Use(middleware2.Cost())
//
//core.Bind(&demo.DemoServiceProvider{})
//core.Bind(&app.HadeAppProvider{
// BaseFolder: "/tmp",
//})
//module.Routes(core)
//server := &http.Server{
// Handler: core,
// Addr: ":8888",
//}
//go func() {
// server.ListenAndServe()
//}()
//
//// 当前的 Goroutine 等待信号量
//quit := make(chan os.Signal)
//// 监控信号SIGINT, SIGTERM, SIGQUIT
//signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
//// 这里会阻塞当前goroutine等待信号
//<-quit
//
//// 调用Server.Shutdown graceful结束
//timeoutCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
//defer cancel()
//
//if err := server.Shutdown(timeoutCtx); err != nil {
// log.Fatal("Server Shutdown:", err)
//}
//}
func main() {
// 初始化服务容器
container := framework.NewHadeContainer()
// 绑定App服务提供者
container.Bind(&app.HadeAppProvider{})
// 后续初始化需要绑定的服务提供者...
container.Bind(&env.HadeEnvProvider{})
container.Bind(&distributed.LocalDistributedProvider{})
container.Bind(&config.HadeConfigProvider{})
//container.Bind(&id.HadeIDProvider{})
//container.Bind(&trace.HadeTraceProvider{})
container.Bind(&log.HadeLogServiceProvider{})
//container.Bind(&config.HadeConfigProvider{})
// 将HTTP引擎初始化,并且作为服务提供者绑定到服务容器中
if engine, err := http.NewHttpEngine(); err == nil {
container.Bind(&kernel.HadeKernelProvider{HttpEngine: engine})
}
// 运行root命令
console.RunCommand(container)
}