Documentation
¶
Index ¶
- Constants
- func CronJobSingle() *cron.Cron
- func GlobalCtx() *simpleioc.GlobalContext
- func GormDb() *gorm.DB
- func MongoDb() *mongodb.Client
- func RedisCache() cache.Rediser
- type Application
- type ApplicationBuild
- func (app *ApplicationBuild) AfterSetup(setupFuncs ...SetupFunc) *ApplicationBuild
- func (app *ApplicationBuild) BeforeSetup(setupFuncs ...SetupFunc) *ApplicationBuild
- func (app *ApplicationBuild) EnableCache(redConfig cache.RedisOptions) *ApplicationBuild
- func (app *ApplicationBuild) EnableDb(dbConfig *datasource.PostgresConfig, models ...interface{}) *ApplicationBuild
- func (app *ApplicationBuild) EnableMongoDB(dbConfig *mongodb.MongoDBConfig) *ApplicationBuild
- func (app *ApplicationBuild) EnableStaticSource(file embed.FS) *ApplicationBuild
- func (app *ApplicationBuild) EnableWeb(timeFormat, port, logLevel string, components webiris.PartyComponent) *ApplicationBuild
- func (app *ApplicationBuild) EnableWebWithConfig(config webiris.Config, components webiris.PartyComponent) *ApplicationBuild
- func (app *ApplicationBuild) InitCronJob() *ApplicationBuild
- func (app *ApplicationBuild) InitLog(outDirPath, level string) *ApplicationBuild
- func (app *ApplicationBuild) LoadConfig(configStruct interface{}, loaderFun func(apploader.Loader)) error
- func (app *ApplicationBuild) OnShutdown(name string, shutdownFunc ShutdownFunc) *ApplicationBuild
- func (app *ApplicationBuild) SetSeeds(seedFuncs ...SetupFunc) *ApplicationBuild
- func (app *ApplicationBuild) SetupToken(AMinute, RHour time.Duration, TokenIssuer string) *ApplicationBuild
- func (app *ApplicationBuild) WithShutdownTimeout(timeout time.Duration) *ApplicationBuild
- type ApplicationBuilder
- type SetupFunc
- type ShutdownFunc
Constants ¶
const AfterSecond = time.Second
AfterSecond 是 Web 启动结果的观察窗口,用于同步捕获端口占用等快速失败。 该常量为兼容现有调用保留,后续会迁移为可配置的启动超时。
const ( // TimeFormat 日期格式 TimeFormat = webiris.DefaultTimeFormat )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Application ¶
type Application interface {
// Start 执行 Builder 回调、初始化启用的组件,并等待应用退出信号。
Start(builder func(ctx context.Context, builder *ApplicationBuild) error) error
}
Application 定义脚手架应用的启动入口。
type ApplicationBuild ¶
type ApplicationBuild struct {
//=========================================》 启动标识
// 是否启动定时服务,在enableCronjob后为true,会自动start(),即开始调用定时Cron表达式函数
IsRunningCronJob bool
// 静态服务文件系统
StaticFs http.FileSystem
// 是否开启web
IsEnableWeb bool
// 是否开启数据库
IsEnableDB bool
// 是否开启redis
IsEnableCache bool
// 是否开始RabbitMq
IsEnableRabbitMq bool
// 是否开始定时任务
IsEnableCronTask bool
// 是否开启mongoDB
IsEnableMongoDB bool
// 是否开启静态服务文件
IsEnableStaticFileServe bool
// 是否开启日志zapLogs
IsEnableZapLogs bool
// contains filtered or unexported fields
}
ApplicationBuild 保存依赖项目通过 Builder 选择的组件配置和启用状态。 字段由各 Enable 方法写入,并由 Application.Start 在单线程启动阶段读取。
func (*ApplicationBuild) AfterSetup ¶
func (app *ApplicationBuild) AfterSetup(setupFuncs ...SetupFunc) *ApplicationBuild
AfterSetup 注册 Web Ready 后回调。 回调仅在启用 Web 且发布 Ready 后执行,任一回调失败都会停止已启动的 Web 服务。
func (*ApplicationBuild) BeforeSetup ¶
func (app *ApplicationBuild) BeforeSetup(setupFuncs ...SetupFunc) *ApplicationBuild
BeforeSetup 注册 Web 启动前回调。 回调仅在启用 Web 时执行,适合完成路由依赖检查、内存数据预热等启动前准备。
func (*ApplicationBuild) EnableCache ¶
func (app *ApplicationBuild) EnableCache(redConfig cache.RedisOptions) *ApplicationBuild
EnableCache 启动缓存
func (*ApplicationBuild) EnableDb ¶
func (app *ApplicationBuild) EnableDb(dbConfig *datasource.PostgresConfig, models ...interface{}) *ApplicationBuild
EnableDb 启动数据库操作对象
func (*ApplicationBuild) EnableMongoDB ¶
func (app *ApplicationBuild) EnableMongoDB(dbConfig *mongodb.MongoDBConfig) *ApplicationBuild
EnableMongoDB 配置MongoDB客户端
func (*ApplicationBuild) EnableStaticSource ¶
func (app *ApplicationBuild) EnableStaticSource(file embed.FS) *ApplicationBuild
EnableStaticSource 加载web服务静态资源文件
func (*ApplicationBuild) EnableWeb ¶
func (app *ApplicationBuild) EnableWeb(timeFormat, port, logLevel string, components webiris.PartyComponent) *ApplicationBuild
EnableWeb 启动Web服务
func (*ApplicationBuild) EnableWebWithConfig ¶
func (app *ApplicationBuild) EnableWebWithConfig(config webiris.Config, components webiris.PartyComponent) *ApplicationBuild
EnableWebWithConfig 使用结构化配置启动 Web 服务。 该方法在保留 EnableWeb 兼容性的同时,允许依赖方设置优雅关闭超时等新增参数。 配置校验错误会在 Application.Start 阶段通过 WebIris.Run 返回并记录日志。
func (*ApplicationBuild) InitCronJob ¶
func (app *ApplicationBuild) InitCronJob() *ApplicationBuild
InitCronJob 初始化定时任务对象,存放入IOC
func (*ApplicationBuild) InitLog ¶
func (app *ApplicationBuild) InitLog(outDirPath, level string) *ApplicationBuild
InitLog 初始化自定义日志
func (*ApplicationBuild) LoadConfig ¶
func (app *ApplicationBuild) LoadConfig(configStruct interface{}, loaderFun func(apploader.Loader)) error
LoadConfig 加载配置文件、环境变量值
func (*ApplicationBuild) OnShutdown ¶
func (app *ApplicationBuild) OnShutdown(name string, shutdownFunc ShutdownFunc) *ApplicationBuild
OnShutdown 注册应用退出时执行的资源关闭函数。 注册顺序应与资源初始化顺序一致,Application 会在启动失败或退出时按逆序执行。 空名称或 nil 函数会被忽略,避免把不可定位或不可执行的关闭任务带入运行阶段。
func (*ApplicationBuild) SetSeeds ¶
func (app *ApplicationBuild) SetSeeds(seedFuncs ...SetupFunc) *ApplicationBuild
SetSeeds 注册 Cron 定时任务创建回调。 至少注册一个有效回调时会自动启用 Cron,调用方无需再显式调用 InitCronJob。
func (*ApplicationBuild) SetupToken ¶
func (app *ApplicationBuild) SetupToken(AMinute, RHour time.Duration, TokenIssuer string) *ApplicationBuild
SetupToken 设置系统token有效期
func (*ApplicationBuild) WithShutdownTimeout ¶
func (app *ApplicationBuild) WithShutdownTimeout(timeout time.Duration) *ApplicationBuild
WithShutdownTimeout 设置应用关闭的总超时时间。 非正数恢复为默认值,避免错误配置造成无限等待或关闭流程立即超时。
type ApplicationBuilder ¶
type ApplicationBuilder interface {
// EnableWeb 使用兼容参数配置 Iris Web 服务。
EnableWeb(timeFormat, port, logLevel string, components webiris.PartyComponent) *ApplicationBuild
// EnableWebWithConfig 使用结构化配置启用 Iris Web 服务。
EnableWebWithConfig(config webiris.Config, components webiris.PartyComponent) *ApplicationBuild
// EnableDb 配置 PostgreSQL、GORM 和需要迁移的 Model。
EnableDb(dbConfig *datasource.PostgresConfig, models ...interface{}) *ApplicationBuild
// EnableCache 配置 Redis 缓存客户端。
EnableCache(redConfig cache.RedisOptions) *ApplicationBuild
// LoadConfig 通过调用方提供的 Loader 配置读取目标结构体。
LoadConfig(configStruct interface{}, loaderFun func(apploader.Loader)) error
// InitLog 初始化脚手架全局日志。
InitLog(outDirPath, level string) *ApplicationBuild
// EnableMongoDB 配置 MongoDB 客户端。
EnableMongoDB(dbConfig *mongodb.MongoDBConfig) *ApplicationBuild
// InitCronJob 显式启用 Cron 调度器,保留给未使用 SetSeeds 的兼容场景。
InitCronJob() *ApplicationBuild
// SetupToken 配置 JWT 有效期和签发者。
SetupToken(AMinute, RHour time.Duration, TokenIssuer string) *ApplicationBuild
// EnableStaticSource 配置 Web 根路径使用的嵌入式静态资源。
EnableStaticSource(file embed.FS) *ApplicationBuild
// BeforeSetup 注册 Web 启动前回调。
BeforeSetup(setupFuncs ...SetupFunc) *ApplicationBuild
// AfterSetup 注册 Web Ready 后回调。
AfterSetup(setupFuncs ...SetupFunc) *ApplicationBuild
// SetSeeds 注册 Cron 任务创建回调并自动启用调度器。
SetSeeds(seedFuncs ...SetupFunc) *ApplicationBuild
// OnShutdown 注册应用退出时需要逆序执行的资源关闭函数。
OnShutdown(name string, shutdownFunc ShutdownFunc) *ApplicationBuild
// WithShutdownTimeout 设置全部资源共享的应用关闭期限。
WithShutdownTimeout(timeout time.Duration) *ApplicationBuild
}
ApplicationBuilder 定义依赖项目可选择的组件和生命周期注册能力。
type ShutdownFunc ¶
ShutdownFunc 定义应用退出时执行的资源关闭函数。 关闭函数必须响应传入 Context 的超时或取消,并返回资源释放过程中发生的错误。