feat 模块删除bind函数

This commit is contained in:
2026-02-06 22:51:47 +08:00
parent 44ebbe4449
commit 5a0f4b71d4
6 changed files with 22 additions and 83 deletions

View File

@@ -10,23 +10,13 @@ import (
// Base 基础模块 // Base 基础模块
type Base struct { type Base struct {
DefaultModule DefaultModule
log *config.LogConfig Log *config.LogConfig
} }
func (m *Base) Init() error { func (m *Base) Init() error {
// 日志 // 日志
log.Init(m.log) log.Init(m.Log)
// 雪花 // 雪花
utils.InitSnowflake(int64(rand.Intn(1000))) utils.InitSnowflake(int64(rand.Intn(1000)))
return nil return nil
} }
func (m *Base) Bind(data ...any) Module {
if data == nil || len(data) == 0 {
return m
}
if l, ok := data[0].(*config.LogConfig); ok {
m.log = l
}
return m
}

View File

@@ -12,32 +12,32 @@ import (
// DB 数据库模块 // DB 数据库模块
type DB struct { type DB struct {
DefaultModule DefaultModule
cfg *config.DBConfig Cfg *config.DBConfig
appName string AppName string
} }
func (m *DB) Init() error { func (m *DB) Init() error {
// ETCD // ETCD
if m.cfg.Etcd != nil { if m.Cfg.Etcd != nil {
if err := etcd.Init(m.cfg.Etcd); err != nil { if err := etcd.Init(m.Cfg.Etcd); err != nil {
return err return err
} }
} }
// MYSQL // MYSQL
if m.cfg.MySQL != nil { if m.Cfg.MySQL != nil {
if err := mysql.Init(m.cfg.MySQL); err != nil { if err := mysql.Init(m.Cfg.MySQL); err != nil {
return err return err
} }
} }
// REDIS // REDIS
if m.cfg.Redis != nil { if m.Cfg.Redis != nil {
if err := redis.Init(m.cfg.Redis); err != nil { if err := redis.Init(m.Cfg.Redis); err != nil {
return err return err
} }
} }
// KAFKA // KAFKA
if m.cfg.Kafka != nil { if m.Cfg.Kafka != nil {
if err := kafka.Init(m.cfg.Kafka, m.appName); err != nil { if err := kafka.Init(m.Cfg.Kafka, m.AppName); err != nil {
return err return err
} }
} }
@@ -59,16 +59,3 @@ func (m *DB) Stop() error {
} }
return nil return nil
} }
func (m *DB) Bind(data ...any) Module {
if data == nil || len(data) == 0 {
return m
}
if cfg, ok := data[0].(*config.DBConfig); ok {
m.cfg = cfg
}
if appName, ok := data[1].(string); ok {
m.appName = appName
}
return m
}

View File

@@ -8,30 +8,20 @@ import (
// Grpc Grpc模块 // Grpc Grpc模块
type Grpc struct { type Grpc struct {
DefaultModule DefaultModule
server service.IService Server service.IService
} }
func (m *Grpc) Start(ready *sync.WaitGroup) error { func (m *Grpc) Start(ready *sync.WaitGroup) error {
m.server.Init(ready) m.Server.Init(ready)
return nil return nil
} }
func (m *Grpc) AfterStart() error { func (m *Grpc) AfterStart() error {
m.server.SetReady() m.Server.SetReady()
return nil return nil
} }
func (m *Grpc) Stop() error { func (m *Grpc) Stop() error {
m.server.Close() m.Server.Close()
return nil return nil
} }
func (m *Grpc) Bind(data ...any) Module {
if data == nil || len(data) == 0 {
return m
}
if ser, ok := data[0].(service.IService); ok {
m.server = ser
}
return m
}

View File

@@ -9,7 +9,6 @@ type Module interface {
Start(ready *sync.WaitGroup) error // 启动 Start(ready *sync.WaitGroup) error // 启动
AfterStart() error // 启动之后 AfterStart() error // 启动之后
Stop() error // 停止 Stop() error // 停止
Bind(data ...any) Module // 绑定数据
} }
type DefaultModule struct { type DefaultModule struct {
@@ -31,7 +30,3 @@ func (m *DefaultModule) AfterStart() error {
func (m *DefaultModule) Stop() error { func (m *DefaultModule) Stop() error {
return nil return nil
} }
func (m *DefaultModule) Bind(_ ...any) Module {
return m
}

View File

@@ -14,9 +14,9 @@ import (
// Prometheus 普罗米修斯模块 // Prometheus 普罗米修斯模块
type Prometheus struct { type Prometheus struct {
DefaultModule DefaultModule
MetricCfg *config.MetricConfig
wg *sync.WaitGroup wg *sync.WaitGroup
server *http.Server server *http.Server
metricCfg *config.MetricConfig
} }
func (m *Prometheus) Init() error { func (m *Prometheus) Init() error {
@@ -29,7 +29,7 @@ func (m *Prometheus) Start(ready *sync.WaitGroup) error {
go func() { go func() {
defer m.wg.Done() defer m.wg.Done()
m.server = &http.Server{ m.server = &http.Server{
Addr: fmt.Sprintf("%v:%v", m.metricCfg.Prometheus.Address, m.metricCfg.Prometheus.Port), Addr: fmt.Sprintf("%v:%v", m.MetricCfg.Prometheus.Address, m.MetricCfg.Prometheus.Port),
Handler: promhttp.Handler(), Handler: promhttp.Handler(),
} }
ready.Done() ready.Done()
@@ -48,13 +48,3 @@ func (m *Prometheus) Stop() error {
m.wg.Wait() m.wg.Wait()
return nil return nil
} }
func (m *Prometheus) Bind(data ...any) Module {
if data == nil || len(data) == 0 {
return m
}
if mc, ok := data[0].(*config.MetricConfig); ok {
m.metricCfg = mc
}
return m
}

View File

@@ -15,16 +15,16 @@ import (
// Tracer 链路追踪模块 // Tracer 链路追踪模块
type Tracer struct { type Tracer struct {
DefaultModule DefaultModule
MetricCfg *config.MetricConfig
ServiceName string
tp *sdktrace.TracerProvider tp *sdktrace.TracerProvider
metricCfg *config.MetricConfig
serviceName string
} }
func (m *Tracer) Init() error { func (m *Tracer) Init() error {
exporter, err := otlptracegrpc.New( exporter, err := otlptracegrpc.New(
context.Background(), context.Background(),
otlptracegrpc.WithInsecure(), otlptracegrpc.WithInsecure(),
otlptracegrpc.WithEndpoint(m.metricCfg.Jaeger.Endpoint), otlptracegrpc.WithEndpoint(m.MetricCfg.Jaeger.Endpoint),
) )
if err != nil { if err != nil {
return err return err
@@ -34,7 +34,7 @@ func (m *Tracer) Init() error {
sdktrace.WithBatcher(exporter), sdktrace.WithBatcher(exporter),
sdktrace.WithResource(resource.NewWithAttributes( sdktrace.WithResource(resource.NewWithAttributes(
semconv.SchemaURL, semconv.SchemaURL,
semconv.ServiceNameKey.String(m.serviceName), semconv.ServiceNameKey.String(m.ServiceName),
)), )),
) )
otel.SetTracerProvider(m.tp) otel.SetTracerProvider(m.tp)
@@ -51,16 +51,3 @@ func (m *Tracer) Stop() error {
} }
return nil return nil
} }
func (m *Tracer) Bind(data ...any) Module {
if data == nil || len(data) == 0 {
return m
}
if mc, ok := data[0].(*config.MetricConfig); ok {
m.metricCfg = mc
}
if name, ok := data[1].(string); ok {
m.serviceName = name
}
return m
}