90 lines
2.3 KiB
Go
90 lines
2.3 KiB
Go
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"log"
|
||
|
||
"git.toowon.com/jimmy/go-common/factory"
|
||
)
|
||
|
||
func main() {
|
||
// 方式1:直接从配置文件创建工厂(推荐)
|
||
fac, err := factory.NewFactoryFromFile("./config/example.json")
|
||
if err != nil {
|
||
log.Fatal("Failed to create factory:", err)
|
||
}
|
||
|
||
// 直接获取数据库对象(已初始化,可直接使用)
|
||
db, err := fac.GetDatabase()
|
||
if err != nil {
|
||
log.Printf("Database not available: %v", err)
|
||
} else {
|
||
// 直接使用数据库
|
||
var count int64
|
||
if err := db.Table("users").Count(&count).Error; err != nil {
|
||
log.Printf("Failed to count users: %v", err)
|
||
} else {
|
||
fmt.Printf("User count: %d\n", count)
|
||
}
|
||
}
|
||
|
||
// 获取Redis配置(用于创建Redis客户端)
|
||
redisConfig := fac.GetRedisConfig()
|
||
if redisConfig != nil {
|
||
fmt.Printf("Redis config: %s:%d\n", redisConfig.Host, redisConfig.Port)
|
||
// 使用go-redis创建客户端示例:
|
||
// import "github.com/redis/go-redis/v9"
|
||
// rdb := redis.NewClient(&redis.Options{
|
||
// Addr: fmt.Sprintf("%s:%d", redisConfig.Host, redisConfig.Port),
|
||
// Password: redisConfig.Password,
|
||
// DB: redisConfig.Database,
|
||
// })
|
||
}
|
||
|
||
// 获取邮件客户端(已初始化,可直接使用)
|
||
emailClient, err := fac.GetEmailClient()
|
||
if err != nil {
|
||
log.Printf("Email client not available: %v", err)
|
||
} else {
|
||
// 直接使用
|
||
err = emailClient.SendSimple(
|
||
[]string{"recipient@example.com"},
|
||
"测试邮件",
|
||
"这是测试内容",
|
||
)
|
||
if err != nil {
|
||
log.Printf("Failed to send email: %v", err)
|
||
} else {
|
||
fmt.Println("Email sent successfully")
|
||
}
|
||
}
|
||
|
||
// 获取短信客户端(已初始化,可直接使用)
|
||
smsClient, err := fac.GetSMSClient()
|
||
if err != nil {
|
||
log.Printf("SMS client not available: %v", err)
|
||
} else {
|
||
// 直接使用
|
||
resp, err := smsClient.SendSimple(
|
||
[]string{"13800138000"},
|
||
map[string]string{"code": "123456"},
|
||
)
|
||
if err != nil {
|
||
log.Printf("Failed to send SMS: %v", err)
|
||
} else {
|
||
fmt.Printf("SMS sent: %s\n", resp.RequestID)
|
||
}
|
||
}
|
||
|
||
// 获取日志记录器(已初始化,可直接使用)
|
||
logger, err := fac.GetLogger()
|
||
if err != nil {
|
||
log.Printf("Logger not available: %v", err)
|
||
} else {
|
||
logger.Info("Application started")
|
||
logger.Debug("Debug message")
|
||
logger.Warn("Warning message")
|
||
logger.Error("Error message")
|
||
}
|
||
}
|