向宁 42addaea7d feat: add Wire DI and rewrite main.go as Kratos app entry point
- Create wire.go with interface bindings (biz interfaces → data implementations)
- Rewrite main.go to use Kratos config loading + Wire-generated initApp
- Remove temporary deps.go pinning file
- Wire generates complete dependency graph: config → data → biz → service → server → app
2026-05-25 13:12:18 +08:00

55 lines
883 B
Go

package main
import (
"flag"
"os"
"rag/file-system/internal/conf"
"github.com/go-kratos/kratos/v2/config"
fileconfig "github.com/go-kratos/kratos/v2/config/file"
"github.com/go-kratos/kratos/v2/log"
)
var (
flagconf string
)
func init() {
flag.StringVar(&flagconf, "conf", "configs/config.yaml", "config path, eg: -conf config.yaml")
}
func main() {
flag.Parse()
logger := log.With(log.NewStdLogger(os.Stdout),
"ts", log.DefaultTimestamp,
"caller", log.DefaultCaller,
"service.kind", "file-system",
)
c := config.New(
config.WithSource(
fileconfig.NewSource(flagconf),
),
)
if err := c.Load(); err != nil {
panic(err)
}
var bc conf.Bootstrap
if err := c.Scan(&bc); err != nil {
panic(err)
}
app, cleanup, err := initApp(&bc, logger)
if err != nil {
panic(err)
}
defer cleanup()
if err := app.Run(); err != nil {
panic(err)
}
}