装饰器列表
依赖注入
| 装饰器 | 类型 | 描述 | 
|---|---|---|
| @Provide() | 类 | 将类标识为可注入并绑定到容器 | 
| @Inject() | 属性、构造器参数 | 注入依赖 | 
| @MultiInject() | 属性、构造器参数 | 注入多个依赖,数组形式 | 
| @Optional() | 属性、构造器参数 | 与 @Inject()配合使用,依赖不存在时注入不会抛出异常 | 
| @InjectContainer() | 属性、构造器参数 | 注入主容器实例 | 
| @InjectApp() | 属性、构造器参数 | 注入当前的应用实例 | 
| @InjectAppConfig() | 属性、构造器参数 | 注入当前的应用配置 | 
| @InjectCtx() | 属性、构造器参数 | 注入当前的请求上下文,仅请求作用域的依赖可以使用 | 
核心组件
| 装饰器 | 类型 | 描述 | 
|---|---|---|
| @Config() | 类 | 声明配置类 | 
| @Middleware() | 类 | 声明中间件类,自动绑定到容器且作用域为 DeferredTransient | 
| @UseMiddlewares() | 类、方法 | 声明为控制器或路由方法应用的中间件列表 | 
| @Guard() | 类 | 声明守卫类,自动绑定到容器且作用域为 DeferredTransient | 
| @UseGuards() | 类、方法 | 声明为控制器或路由方法应用的守卫列表 | 
| @UseGuardsOr() | 类、方法 | 声明为控制器或路由方法应用的守卫列表,其中有任一一个守卫通过则视为通过 | 
| @ResponseHandler() | 类 | 声明响应处理器类,自动绑定到容器且作用域为 DeferredTransient | 
| @ExceptionHandler() | 类 | 声明异常处理器类,自动绑定到容器且作用域为 Singleton | 
| @Plugin() | 类 | 声明插件类,自动绑定到容器且作用域为 Singleton | 
Web
| 装饰器 | 类型 | 描述 | 
|---|---|---|
| @Controller() | 类 | 声明控制器类,自动绑定到容器且作用域为 Deferred | 
| @Service() | 类 | 声明服务类,自动绑定到容器且作用域为 Deferred | 
| @Get() | 方法 | 为路由方法设置 HTTP Method 为 GET 的路由 | 
| @Post() | 方法 | 为路由方法设置 HTTP Method 为 POST 的路由 | 
| @Put() | 方法 | 为路由方法设置 HTTP Method 为 PUT 的路由 | 
| @Patch() | 方法 | 为路由方法设置 HTTP Method 为 PATCH 的路由 | 
| @Delete() | 方法 | 为路由方法设置 HTTP Method 为 DELETE 的路由 | 
| @Head() | 方法 | 为路由方法设置 HTTP Method 为 HEAD 的路由 | 
| @Options() | 方法 | 为路由方法设置 HTTP Method 为 OPTIONS 的路由 | 
| @All() | 方法 | 为路由方法设置 HTTP Method 为全部的路由 | 
| @Param() | 参数 | 声明被装饰参数为请求 url param | 
| @Query() | 参数 | 声明被装饰参数为请求 url query | 
| @Body() | 参数 | 声明被装饰参数为请求 body | 
| @FormFile() | 参数 | 声明被装饰参数为请求的上传文件 | 
| @Header() | 参数 | 声明被装饰参数为请求头 | 
| @UserAgent() | 参数 | 声明被装饰参数为请求头的 user-agent | 
| @Referer() | 参数 | 声明被装饰参数为请求头的 referer | 
| @Cookie() | 参数 | 声明被装饰参数为请求头的 cookie | 
| @Session() | 参数 | 声明被装饰参数为请求 session | 
| @Host() | 参数 | 声明被装饰参数为请求 host | 
| @Url() | 参数 | 声明被装饰参数为请求 url | 
数据校验
| 装饰器 | 类型 | 描述 | 
|---|---|---|
| @FromParam() | 属性 | 声明 DTO 字段来源为 url param | 
| @FromQuery() | 属性 | 声明 DTO 字段来源为 url query | 
| @FromBody() | 属性 | 声明 DTO 字段来源为 body | 
| @IsFile() | 属性 | 声明 DTO 字段类型为上传文件 | 
| @Contract() | 方法 | 声明路由方法的请求和响应 DTO 以供数据校验 | 
| @Data() | 参数 | 声明被装饰参数为已经过校验和转换的数据 | 
反射
| 装饰器 | 类型 | 描述 | 
|---|---|---|
| @InjectReflector() | 属性、构造器参数 | 注入反射器,用于反射获取当前的中间件/守卫/响应处理器被应用到的控制器及其路由方法 | 
| @SetMetadata() | 类、方法 | 设置元数据 |