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 基础模块
type Base struct {
DefaultModule
log *config.LogConfig
Log *config.LogConfig
}
func (m *Base) Init() error {
// 日志
log.Init(m.log)
log.Init(m.Log)
// 雪花
utils.InitSnowflake(int64(rand.Intn(1000)))
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 数据库模块
type DB struct {
DefaultModule
cfg *config.DBConfig
appName string
Cfg *config.DBConfig
AppName string
}
func (m *DB) Init() error {
// ETCD
if m.cfg.Etcd != nil {
if err := etcd.Init(m.cfg.Etcd); err != nil {
if m.Cfg.Etcd != nil {
if err := etcd.Init(m.Cfg.Etcd); err != nil {
return err
}
}
// MYSQL
if m.cfg.MySQL != nil {
if err := mysql.Init(m.cfg.MySQL); err != nil {
if m.Cfg.MySQL != nil {
if err := mysql.Init(m.Cfg.MySQL); err != nil {
return err
}
}
// REDIS
if m.cfg.Redis != nil {
if err := redis.Init(m.cfg.Redis); err != nil {
if m.Cfg.Redis != nil {
if err := redis.Init(m.Cfg.Redis); err != nil {
return err
}
}
// KAFKA
if m.cfg.Kafka != nil {
if err := kafka.Init(m.cfg.Kafka, m.appName); err != nil {
if m.Cfg.Kafka != nil {
if err := kafka.Init(m.Cfg.Kafka, m.AppName); err != nil {
return err
}
}
@@ -59,16 +59,3 @@ func (m *DB) Stop() error {
}
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模块
type Grpc struct {
DefaultModule
server service.IService
Server service.IService
}
func (m *Grpc) Start(ready *sync.WaitGroup) error {
m.server.Init(ready)
m.Server.Init(ready)
return nil
}
func (m *Grpc) AfterStart() error {
m.server.SetReady()
m.Server.SetReady()
return nil
}
func (m *Grpc) Stop() error {
m.server.Close()
m.Server.Close()
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 // 启动
AfterStart() error // 启动之后
Stop() error // 停止
Bind(data ...any) Module // 绑定数据
}
type DefaultModule struct {
@@ -31,7 +30,3 @@ func (m *DefaultModule) AfterStart() error {
func (m *DefaultModule) Stop() error {
return nil
}
func (m *DefaultModule) Bind(_ ...any) Module {
return m
}

View File

@@ -14,9 +14,9 @@ import (
// Prometheus 普罗米修斯模块
type Prometheus struct {
DefaultModule
MetricCfg *config.MetricConfig
wg *sync.WaitGroup
server *http.Server
metricCfg *config.MetricConfig
}
func (m *Prometheus) Init() error {
@@ -29,7 +29,7 @@ func (m *Prometheus) Start(ready *sync.WaitGroup) error {
go func() {
defer m.wg.Done()
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(),
}
ready.Done()
@@ -48,13 +48,3 @@ func (m *Prometheus) Stop() error {
m.wg.Wait()
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 链路追踪模块
type Tracer struct {
DefaultModule
MetricCfg *config.MetricConfig
ServiceName string
tp *sdktrace.TracerProvider
metricCfg *config.MetricConfig
serviceName string
}
func (m *Tracer) Init() error {
exporter, err := otlptracegrpc.New(
context.Background(),
otlptracegrpc.WithInsecure(),
otlptracegrpc.WithEndpoint(m.metricCfg.Jaeger.Endpoint),
otlptracegrpc.WithEndpoint(m.MetricCfg.Jaeger.Endpoint),
)
if err != nil {
return err
@@ -34,7 +34,7 @@ func (m *Tracer) Init() error {
sdktrace.WithBatcher(exporter),
sdktrace.WithResource(resource.NewWithAttributes(
semconv.SchemaURL,
semconv.ServiceNameKey.String(m.serviceName),
semconv.ServiceNameKey.String(m.ServiceName),
)),
)
otel.SetTracerProvider(m.tp)
@@ -51,16 +51,3 @@ func (m *Tracer) Stop() error {
}
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
}