Skip to main content
Version: 3.0.0

现有装饰器索引

Midway 提供了很多装饰器能力,这些装饰器分布在不同的包,也提供了不同的功能,本章节提供一个快速反查的列表。

@midwayjs/decorator

装饰器修饰位置描述
@ProvideClass暴露一个 class,让 IoC 容器能够获取元数据
@InjectProperty注入一个 IoC 容器中的对象
@ScopeClass指定作用域
@InitMethod标注对象初始化时自动执行的方法
@DestroyMethod标注对象销毁时执行的方法
@AsyncClass【已废弃】表明为异步函数
@AutowireClass【已废弃】标识类为自动注入属性
@AutoloadClass让类可以自加载执行
@ConfigurationClass标识一个容器入口配置类
@AspectClass标识拦截器
@ValidateMethod标识方法,需要被验证
@RuleProperty标识 DTO 的校验规则
@AppProperty注入当前应用实例
@ConfigProperty获取配置
@LoggerProperty获取日志实例
@ControllerClass标识为一个 Web 控制器
@GetMethod注册为一个 GET 类型的路由
@PostMethod注册为一个 POST 类型的路由
@DelMethod注册为一个 DELETE 类型的路由
@PutMethod注册为一个 PUT 类型的路由
@PatchMethod注册为一个 PATCH 类型的路由
@OptionsMethod注册为一个 OPTIONS 类型的路由
@HeadMethod注册为一个 HEAD 类型的路由
@AllMethod注册为一个全类型的路由
@SessionParameter从参数获取 ctx.session
@BodyParameter从参数获取 ctx.request.body
@QueryParameter从参数获取 ctx.query
@ParamParameter从参数获取 ctx.param
@HeadersParameter从参数获取 ctx.headers
@FileParameter从参数获取第一个上传文件
@FilesParameter从参数获取所以的上传文件
@FieldsParameter从参数获取表单 Field(上传时)
@RedirectMethod修改响应跳转
@HttpCodeMethod修改响应状态码
@SetHeaderMethod修改响应头
@ContentTypeMethod修改响应头中的 Content-Type 字段
@ScheduleClass标识为一个 egg 定时任务
@PluginProperty获取 egg 插件
@ProviderClass暴露微服务提供者(生产者)
@ConsumerClass暴露微服务调用者(消费者)
@GrpcMethodMethod标识暴露的 gRPC 方法
@FuncClass/Method【已废弃】标识为一个函数入口
@HandlerMethod【已废弃】配合标记函数
@ServerlessTriggerMethod标识一个函数触发器
@TaskMethod定义一个分布式任务
@TaskLocalMethod定义一个本地任务
@QueueClass定义一个自触发的任务

@midwayjs/orm

装饰器修饰位置作用
@EntityModelClass定义一个实体对象
@InjectEntityModelProperty注入一个实体对象
@EventSubscriberModelClass定义事件订阅

@midwayjs/validate

装饰器修饰位置描述
@RuleProperty定义一个规则
@ValidateMethod标识一个需要校验的方法

@midwayjs/swagger

装饰器修饰位置描述
@ApiBodyMethod
@ApiExcludeEndpointMethod
@ApiExcludeControllerClass
@ApiHeaderClass/Method
@ApiHeadersClass/Method
@ApiOperationMethod
@ApiPropertyProperty
@ApiPropertyOptionalProperty
@ApiResponsePropertyProperty
@ApiQueryMethod
@ApiResponseMethod
@ApiTagsController/Method
@ApiExtensionMethod
@ApiBasicAuthController
@ApiBearerAuthController
@ApiCookieAuthController
@ApiOAuth2Controller
@ApiSecurityController
@ApiParamMethod
@ApiParamMethod