56 lines
783 B
Go
56 lines
783 B
Go
package bootstrap
|
|
|
|
import (
|
|
"allapp-go/internal/bootstrap/boots"
|
|
"allapp-go/internal/config"
|
|
"allapp-go/pkg/logger"
|
|
|
|
"github.com/jackc/pgx/v5/pgxpool"
|
|
)
|
|
|
|
type App struct {
|
|
Config *config.Config
|
|
PgSql *pgxpool.Pool
|
|
}
|
|
|
|
// ======================
|
|
// 初始化
|
|
// ======================
|
|
|
|
func NewApp() (*App, error) {
|
|
cfg, err := config.Load()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// 日志
|
|
boots.InitLogger(cfg)
|
|
|
|
// 数据库
|
|
pgsql, err := boots.InitPgsql(cfg)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// 其他组件
|
|
boots.InitUniqueId(cfg)
|
|
boots.InitJwt(cfg)
|
|
|
|
return &App{
|
|
Config: cfg,
|
|
PgSql: pgsql,
|
|
}, nil
|
|
}
|
|
|
|
// ======================
|
|
// 释放资源
|
|
// ======================
|
|
|
|
func (a *App) Close() {
|
|
if a.PgSql != nil {
|
|
a.PgSql.Close()
|
|
}
|
|
|
|
logger.Sync()
|
|
}
|