修改对象的获取方式
This commit is contained in:
30
README.md
30
README.md
@@ -29,7 +29,7 @@
|
||||
提供阿里云短信发送功能,支持模板短信和批量发送,使用Go标准库实现。
|
||||
|
||||
### 9. 工厂工具 (factory)
|
||||
提供从配置直接创建已初始化客户端对象的功能,避免调用方重复实现创建逻辑。
|
||||
提供从配置文件直接创建已初始化客户端对象的功能,包括数据库、Redis、邮件、短信、日志等,避免调用方重复实现创建逻辑。
|
||||
|
||||
### 10. 日志工具 (logger)
|
||||
提供统一的日志记录功能,支持多种日志级别和输出方式,使用Go标准库实现。
|
||||
@@ -185,27 +185,33 @@ smsClient.SendSimple(
|
||||
|
||||
#### 使用工厂直接获取客户端(推荐)
|
||||
```go
|
||||
import (
|
||||
"git.toowon.com/jimmy/go-common/config"
|
||||
"git.toowon.com/jimmy/go-common/factory"
|
||||
)
|
||||
import "git.toowon.com/jimmy/go-common/factory"
|
||||
|
||||
// 加载配置并创建工厂
|
||||
cfg, _ := config.LoadFromFile("./config.json")
|
||||
fac := factory.NewFactory(cfg)
|
||||
// 方式1:直接从配置文件创建工厂(最推荐)
|
||||
fac, _ := factory.NewFactoryFromFile("./config.json")
|
||||
|
||||
// 直接获取数据库对象(已初始化,可直接使用)
|
||||
db, _ := fac.GetDatabase()
|
||||
db.Find(&users) // 直接使用,无需再创建连接
|
||||
|
||||
// 获取Redis配置(用于创建Redis客户端)
|
||||
redisConfig := fac.GetRedisConfig()
|
||||
// 使用go-redis创建客户端:
|
||||
// rdb := redis.NewClient(&redis.Options{
|
||||
// Addr: fmt.Sprintf("%s:%d", redisConfig.Host, redisConfig.Port),
|
||||
// Password: redisConfig.Password,
|
||||
// DB: redisConfig.Database,
|
||||
// })
|
||||
|
||||
// 直接获取已初始化的客户端(无需重复实现创建逻辑)
|
||||
emailClient, _ := fac.GetEmailClient()
|
||||
smsClient, _ := fac.GetSMSClient()
|
||||
logger, _ := fac.GetLogger()
|
||||
|
||||
// 直接使用
|
||||
emailClient.SendSimple(...)
|
||||
smsClient.SendSimple(...)
|
||||
|
||||
// 获取日志记录器(已初始化,可直接使用)
|
||||
logger, _ := fac.GetLogger()
|
||||
logger.Info("Application started")
|
||||
logger.Error("Error occurred: %v", err)
|
||||
```
|
||||
|
||||
更多示例请查看 [examples](./examples/) 目录。
|
||||
|
||||
Reference in New Issue
Block a user