全局模块/生命周期
模块是什么
就是一个以@Modle修饰的类,封装了controllers
和providers
ts
@Module({
imports: [AaaModule, BbbModule],
controllers: [AppController],
providers: [AppService],
exports:[AppService]
})
全局模块
其他模块不用手动import即可使用
生命周期
onModuleInit ->onApplicationBootstrap -> onModuleDestroy -> beforeApplicationShutdown -> onApplicationShutdown
每一个周期的执行都是前序遍历
初始化周期
首先,递归初始化模块,会依次调用模块内的 controller、provider 的 onModuleInit 方法,然后再调用 module 的 onModuleInit 方法。
全部初始化完之后,再依次调用模块内的 controller、provider 的 onApplicationBootstrap 方法,然后调用 module 的 onApplicationBootstrap 方法
销毁周期
先调用每个模块的 controller、provider 的 onModuleDestroy 方法,然后调用 Module 的 onModuleDestroy 方法。
之后再调用每个模块的 controller、provider 的 beforeApplicationShutdown 方法,然后调用 Module 的 beforeApplicationShutdown 方法。
然后停止监听网络端口。
之后调用每个模块的 controller、provider 的 onApplicationShutdown 方法,然后调用 Module 的 onApplicationShutdown 方法。