装饰器列表

依赖注入

装饰器类型描述
@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()类、方法设置元数据