ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、概述 简单介绍几个常用注解: ## 二、核心业务 **@RayServiceMethod** 这个是最常用的注解,所有的业务方法,都应该加入它,平台依据他进行一些参数编码,加密解密,token解析与校验、前端公用数据预准备等逻辑; ## 三、定制业务 **@RayValidateCodeMethod** 用于验证码业务逻辑,所有需要在前端进行验证码操作的业务,加上这个标记,即可解决验证码的业务,非常简单高效; ## 四、性能跟踪 **@RayTraceMethod和@RayTraceClass** 用于调试业务的两个有用的注解,用它可以跟踪业务逻辑,后台会生成调用堆栈,一般用于业务调试用,生产的时候,会禁用; **@RayPerformanceMonitorMethod** **@RayDangerMethod和@RayDangerClass** 用于敏感和高风险业务的注解,增强安全约束; ## 五、登陆及安全校验 ### **token验证系列:** **@RayEscapeTokenValidateControllerMethod** 默认的,所有的api都需要验证头部的rayAccessToken,如果有些业务无须验证,加上该注解,即可; **@RayOptionalTokenValidateControllerMethod** 有时候,同一个方法接口,需要同时支持头部放token和不放两种情形,那么加上该注解,即可; 举例: ``` @ApiOperation(value = "购物车详情", notes = "手机端显示购物车详情") @ApiOperationSupport(order = 1) @ApiImplicitParams({ // @ApiImplicitParam(name = RayConstants.rayAccessToken, value = "授权token", required = false, dataTypeClass = String.class, paramType = "header") }) @PostMapping("/api/business/rmall/mobile/cart/detail") @RayOptionalTokenValidateControllerMethod public ResponseEntity<ResponseObject> detail(@RequestHeader(required = false) String rayAccessToken) throws Exception { return ResponseEntity.ok(mobileCartService.detail()); } ``` **@RayValidateTokenInParamControllerMethod** 有时候,rayAccessToken不存放到头部,而是放到参数里面,那么,需要通过这个注解来标记; ### **客户端合法性验证系列:** **@RayEscapeRequestValidateControllerMethod** 默认的,所有的api都需要验证客户端请求的合法性和合理性,如果某些业务需要规避验证,加上这个注解,即可; ## 六、字典翻译 **@RayDynamicConvert**系列注解 用于动态反应后端数据给前端业务匹配的注解,这个非常灵活,可以大幅度精简后端代码,是为了解决后端模型与前端业务的不匹配这个问题而设计实现的;