refactor all service dependency injection

This commit is contained in:
2026-08-10 11:35:48 +08:00
parent 007a7ba38a
commit c883cc52a2
152 changed files with 1030 additions and 223 deletions

View File

@@ -0,0 +1,32 @@
package service
import (
"bsm/full/module/finance/wallet/internal/impl"
"git.apinb.com/bsm-sdk/core/cache/redis"
cache "github.com/patrickmn/go-cache"
clientv3 "go.etcd.io/etcd/client/v3"
"gorm.io/gorm"
)
// Dependencies contains shared infrastructure supplied by the all module.
type Dependencies struct {
Redis *redis.RedisClient
Etcd *clientv3.Client
DB *gorm.DB
Cache *cache.Cache
}
func applyDependencies(deps Dependencies) {
if deps.Redis != nil {
impl.RedisService = deps.Redis
}
if deps.Etcd != nil {
impl.EtcdService = deps.Etcd
}
if deps.DB != nil {
impl.DBService = deps.DB
}
if deps.Cache != nil {
impl.MemorySerice = deps.Cache
}
}

View File

@@ -11,6 +11,7 @@ import (
)
type ExposeOptions struct {
Dependencies
GRPC *grpc.Server
Gateway *gwRuntime.ServeMux
Config *Config
@@ -19,6 +20,7 @@ type ExposeOptions struct {
type Config = config.SrvConfig
func Expose(options ExposeOptions) error {
applyDependencies(options.Dependencies)
if options.Config != nil {
config.Spec = *options.Config
}