Skip to content
On this page

全局模块/生命周期

模块是什么

就是一个以@Modle修饰的类,封装了controllersproviders

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 方法。