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

怎么做卖衣服网站网站优化成都哪里好

怎么做卖衣服网站,网站优化成都哪里好,学习做网站要多久,网站建设误区文章目录 一、问题描述二、问题分析三、断掉调试四、代码展示 一、问题描述 需求#xff1a;将项目中增、删、改相关接口的操作日志记录到数据库表中。 操作日志信息包含#xff1a; 操作人、操作时间、执行方法的全类名、执行方法名、方法运行时参数、返回值、方法执行时… 文章目录 一、问题描述二、问题分析三、断掉调试四、代码展示 一、问题描述 需求将项目中增、删、改相关接口的操作日志记录到数据库表中。 操作日志信息包含 操作人、操作时间、执行方法的全类名、执行方法名、方法运行时参数、返回值、方法执行时长 所记录的日志信息包括当前接口的操作人是谁操作的什么时间点操作的以及访问的是哪个类当中的哪个方法在访问这个方法的时候传入进来的参数是什么访问这个方法最终拿到的返回值是什么以及整个接口方法的运行时长是多长时间。 二、问题分析 问题1项目当中增删改相关的方法是不是有很多 问题2我们需要针对每一个功能接口方法进行修改在每一个功能接口当中都来记录这些操作日志吗 以上两个问题的解决方案可以使用AOP解决(每一个增删改功能接口中要实现的记录操作日志的逻辑代码是相同)。 可以把这部分记录操作日志的通用的、重复性的逻辑代码抽取出来定义在一个通知方法当中我们通过AOP面向切面编程的方式在不改动原始功能的基础上来对原始的功能进行增强。目前我们所增强的功能就是来记录操作日志所以也可以使用AOP的技术来实现。使用AOP的技术来实现也是最为简单最为方便的。 问题3既然要基于AOP面向切面编程的方式来完成的功能那么我们要使用 AOP五种通知类型当中的哪种通知类型 答案环绕通知 所记录的操作日志当中包括操作人、操作时间访问的是哪个类、哪个方法、方法运行时参数、方法的返回值、方法的运行时长。 方法返回值是在原始方法执行后才能获取到的。 方法的运行时长需要原始方法运行之前记录开始时间原始方法运行之后记录结束时间。通过计算获得方法的执行耗时。 基于以上的分析我们确定要使用Around环绕通知。 问题4最后一个问题切入点表达式我们该怎么写 答案使用annotation来描述表达式 要匹配业务接口当中所有的增删改的方法而增删改方法在命名上没有共同的前缀或后缀。此时如果使用execution切入点表达式也可以但是会比较繁琐。 当遇到增删改的方法名没有规律时就可以使用 annotation切入点表达式 三、断掉调试 让我们用debug来看一下先来看看修改相关的操作 放行断点 通过debug看控制台的operateLog对面都注入成功 我们来看看数据库 最后来看看查询时的情况 最后来看看数据库 四、代码展示 Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public interface OperationLog { }Data AllArgsConstructor NoArgsConstructor Builder public class OperateLog {private Long id; //主键IDprivate Long operateUser; //操作人IDprivate LocalDateTime operateTime; //操作时间private String className; //操作类名private String methodName; //操作方法名private String methodParams; //操作方法参数private String returnValue; //操作方法返回值private Long costTime; //操作耗时 }CREATE TABLE operate_log (id bigint unsigned NOT NULL AUTO_INCREMENT COMMENT ID,operate_user bigint unsigned DEFAULT NULL COMMENT 操作人ID,operate_time datetime DEFAULT NULL COMMENT 操作时间,class_name varchar(100) DEFAULT NULL COMMENT 操作的类名,method_name varchar(100) DEFAULT NULL COMMENT 操作的方法名,method_params varchar(1000) DEFAULT NULL COMMENT 方法参数,return_value varchar(2000) DEFAULT NULL COMMENT 返回值,cost_time bigint DEFAULT NULL COMMENT 方法执行耗时, 单位:ms,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT23 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci COMMENT操作日志表Component Aspect Slf4j public class OperationAspect {Autowiredprivate OperateLogMapper operateLogMapper;Around(annotation(com.sky.annotation.OperationLog))public Object log(ProceedingJoinPoint joinPoint) {try {Long operateUser BaseContext.getCurrentId();//操作人IDLocalDateTime now LocalDateTime.now();//操作时间long begin System.currentTimeMillis();//开始时间String className joinPoint.getTarget().getClass().getName();//操作类名String methodName joinPoint.getSignature().getName();//操作方法名Object[] args joinPoint.getArgs();String methodParams Arrays.toString(args);//操作方法参数Object result joinPoint.proceed();//调用原始目标方法运行long end System.currentTimeMillis();String returnValue JSONObject.toJSONString(result);//方法返回值long costTime end - begin;//操作耗时OperateLog operateLog new OperateLog(null, operateUser, now, className, methodName, methodParams, returnValue, costTime);operateLogMapper.insert(operateLog);return result;} catch (Throwable e) {throw new RuntimeException(e);}} }
http://www.zqtcl.cn/news/91164/

相关文章:

  • 网站建设销售经理职责大桥石化集团网站谁做的
  • 黄金网站软件免费靖江seo快速排名
  • 网站建设经验做法和取得的成效wordpress 浏览器兼容
  • 代理记账注册公司图片商丘网站seo
  • 北京网站建设推荐安徽秒搜科技河南建设工程信息网招标公告
  • 网站开发项目实训总结微网站设计
  • 山东济南建网站公司东莞排名seo网站关键词优化
  • 找网站建设企业培训机构哪家最好
  • 建什么类型个人网站比较好开发高端网站建设价格
  • 网站开发 卡片网站建设合同需要印花税
  • 手机端网站图片上传如何做新公司取名字大全免费
  • vue.js网站建设智慧团建官方网站登录入口
  • 江宁区建设局网站网站建设 美食站点
  • 哈尔滨松北区建设局网站唐山企业网站模板建站
  • 服装公司网站策划书外网设计灵感网站
  • 学做婴儿衣服网站windows 建网站
  • 银饰品网站建设规划策划书wordpress近义词搜索
  • 淘宝联盟网站推广位怎么做网站开发合同支付
  • 有没有一些有试卷做的网站ios开发教程
  • 网站备案服务类型红酒公司网站源码
  • 南宁网站优化推广方案4000套微信小游戏源码
  • 什么犁网站做淘宝门头阿里云 wordpress建站
  • 免费网站建设凡科设计师的网站有哪些
  • 微信公众号运营方法seo 排名 优化
  • 深圳做营销网站设计淘宝网官方网站免费下载
  • 菏泽住房和城乡建设厅网站企业查询官网免费查询一下
  • 青海网站建设公司电话163 com邮箱注册
  • 建设法律法规文本查询网站自由设计师是什么意思
  • 分站城市网站如何做seo上海网站建设选缘魁
  • 荆门网站建设电话如何制作网页链接二维码