当前位置: 首页 > news >正文

网站开发的主要工作步骤wordpress主题博客选项

网站开发的主要工作步骤,wordpress主题博客选项,网站开发哪好,石景山安保服务公司电话目录 ​编辑 自定义注解 AOP 记录用户的使用日志 使用背景 落地实践 一:自定义注解 二:切面配置 三:Api层使用 使用效果 自定义注解 AOP 记录用户的使用日志 使用背景 (1)在学校项目中,安防平台…

目录

​编辑

自定义注解 + AOP 记录用户的使用日志

使用背景

落地实践

一:自定义注解

二:切面配置

三:Api层使用

使用效果


自定义注解 + AOP 记录用户的使用日志

使用背景

(1)在学校项目中,安防平台实际的使用人员大多都是外聘人员,用户的一些关键操作最好记录清楚,像是青岛工程职业学院网络及监控系统项目中,有个功能是对全校学生权限的一键冻结和解冻。

(2)对接非常强势的第三方数据时,例如腾讯的腾讯微卡产品,虽然是他们将数据接入到海康平台,但仍然不接受定制,我们必须按照腾讯的接口协议,提供给他们接口。注意:此时没有办法走OpenApi,而请假数据是每天有推送的,为了一旦出现问题可回溯,需要记录完整的数据日志。

落地实践

一:自定义注解

配置自定义注解“LogPoint”,之后会用在关键的接口上,作为切入点来记录该接口的访问信息。


@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Documented
public @interface LogPoint {/**** @Description 日志描述* @return java.lang.String*/String description() default "";
}

 

二:切面配置

1.在切面里,我们可以配置请求参数的详细信息逐条打印,和响应结果与它的耗时记录,这些打印信息足以应对现场的大多数问题。

2.不用担心info日志打印过多的问题,只需要把注解标注在关键的接口,与多占的那些硬盘空间相比,这些信息能帮助技术和研发节省更多的时间,更具性价比。

    /*** @ClassName AspectLogConfig* @Description 出入参日志配置类* @Version 1.0**/@Aspect@Component@Slf4jpublic class LogConfig {private final static Logger logger = LoggerFactory.getLogger(LogConfig.class);@Pointcut("@annotation(com.hikvision.pea.common.annotation.LogPoint)")public void logPoint() {}/**** @Description 切入点之前织入* @Param []* @return void*/@Before("logPoint()")public void doBefore(JoinPoint joinPoint) throws Throwable {//开始打印请求日志ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = requestAttributes.getRequest();//打印请求相关参数logger.info("================== start ==================");//打印请求 urllogger.info("URL              : {}", request.getRequestURL().toString());//打印描述信息//打印HTTP methodlogger.info("HTTP Method      : {}", request.getMethod());//打印调用 controller 的全路径以及执行方法logger.info("Class Method     : {}.{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName());//打印请求的iplogger.info("IP               : {}", request.getRemoteAddr());//打印请求入参logger.info("Request Args     : {}", joinPoint.getArgs());}@After("logPoint()")public void doAfter() throws Throwable {}/**** @Description 环绕* @Date 14:35 2022/6/23* @Param [proceedingJoinPoint]* @return java.lang.Object*/@Around("logPoint()")public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {long startTime = System.currentTimeMillis();//执行切点Object result = proceedingJoinPoint.proceed();logger.info("打印出参 : {}", result);logger.info("执行耗时 : {} ms", System.currentTimeMillis() - startTime);logger.info("================== end ===================" + System.lineSeparator());return result;}}

 

三:Api层使用

只需要将注解加在对应的接口上,无需其它编码。

/*** @ClassName ResourceController* @Description 门禁点控制器* @Version 1.0**/@Api(tags = "门禁点控制器")
@RestController
@RequestMapping("/resource")
@Slf4j
public class ResourceController {@AutowiredIResourceService iResourceService;@ApiOperation("获取门禁点资源")@PostMapping("/doorSources")@LogPoint(description = "获取门禁点资源")public ResponseData getDoorSources(@ApiParam("入参") @RequestBody ResourceReqVo resourceReqVo) {Page<Resource> resources = iResourceService.getResources(resourceReqVo);return ResponseData.success(resources);}
}

 

使用效果

将调用方的请求参数、IP、响应结果、耗时,都完整的打印出来,一旦出现外聘人员误操作或者三方数据不匹配,通过这些信息,定位起问题来都非常方便。

在这里插入图片描述

 

http://www.yayakq.cn/news/910528/

相关文章:

  • 有哪些网站可以做青旅义工国外二级域名免费申请
  • 跟业务合作做网站给多少提成个体工商户 网站建设
  • 商业网站开发入门选课wordpress降低版本
  • 临沂网站建设价格网站关键词库是怎么做的
  • 手机网站开发前台架构智能家居产品设计案例
  • 网站网页设计平台石家庄专业网站建设
  • 成品网站建设流程昆明网站的优化
  • 同心县建设局网站做网站什么价位
  • 万网 成品网站php 建设网站制作
  • 手机网站模板更改吗免费网站推广怎么做
  • 做医疗健康类网站需要资质吗深圳龙华区简介
  • 影视网站怎么做优化如何取消危险网站提示
  • 单页网站seo怎么做免费客户管理软件排行
  • 台州企业网站模板建站四川成都营销型网站
  • 做网站服务器空间学习网站开发
  • 家装企业网站系统下载有关于网站开发的参考文献
  • 网站推广哪个好手机免费图片制作软件
  • 企业网站建设与网页制作建设公司官网流程
  • 龙海网站建设价格网上电商教程
  • 建设开发网站软件开发外包报价
  • 网站制作需要学什么公司品牌推广公司
  • 网络培训投诉平台黄石seo
  • wap网站建设教程wordpress主题静态页面
  • 网站备案 个人 单位珠海网站设计报价
  • 文创做的好的网站推荐两学一做网站
  • 微信免费建站卓老师建站网站后台如何直接登陆
  • 网站建设 报价单个人网页设计作品 布局
  • 旅游网站建设与翻译网页qq怎么登录
  • 扬州市广陵区城乡建设局网站服务器网站建设维护
  • 怎么查询网站域名人事外包服务