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

蒙城做网站制作网页用什么语言

蒙城做网站,制作网页用什么语言,网站主页设计要点,重庆app定制软件开发黑马程序员JavaWeb开发教程 文章目录 一、案例1.1 案例1.2 步骤1.2.1 准备1.2.2 编码 一、案例 1.1 案例 将之前案例中增、删、改相关节后的操作日志记录到数据库表中。 操作日志#xff1a;日志信息包含#xff1a;操作人、操作时间、执行方法的全类名、执行方法名、方法… 黑马程序员JavaWeb开发教程 文章目录 一、案例1.1 案例1.2 步骤1.2.1 准备1.2.2 编码 一、案例 1.1 案例 将之前案例中增、删、改相关节后的操作日志记录到数据库表中。 操作日志日志信息包含操作人、操作时间、执行方法的全类名、执行方法名、方法运行时参数、返回值、方法执行时长思路分析 需要对所有业务中的增、删、改方法添加同一功能使用AOP技术最为方便Around 环绕通知由于增、删、改方法名没有规律可以自定义Log 注解完成目标方法匹配 1.2 步骤 1.2.1 准备 在案例工程中引入AOP的起步依赖 !-- AOP起步依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependency在数据库中新建日志数据表并引入对应的实体类 创建数据表语句 -- 操作日志表 create table operate_log(id int unsigned primary key auto_increment comment ID,operate_user int unsigned comment 操作人ID,operate_time datetime comment 操作时间,class_name varchar(100) comment 操作的类名,method_name varchar(100) comment 操作的方法名,method_params varchar(1000) comment 方法参数,return_value varchar(2000) comment 返回值,cost_time bigint comment 方法执行耗时, 单位:ms ) comment 操作日志表;实体类代码 package com.itheima.mytlias.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.math.BigInteger; import java.time.LocalDateTime;//操作日志表 Data//getter、setter等 NoArgsConstructor//无参构造函数 AllArgsConstructor//全参构造函数 public class OperateLog {private Integer id;//idprivate Integer operateUser;//操作人idprivate LocalDateTime operateTime;//操作时间private String className;//操作的类名private String methodName;//操作的方法名private String methodParas;//方法参数private String returnValue;//返回值private BigInteger costTime;//方法执行时间单位ms } 另外还需要mapper接口以向日志记录表中插入数据 package com.itheima.mytlias.mapper;import com.itheima.mytlias.pojo.OperateLog; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper;Mapper public interface OperateLogMapper {Insert(insert into operate_log(operate_user,operate_time,class_name,method_name,method_params,return_value,cost_time) values(#{operateUser},#{operateTime},#{className},#{methodName},#{methodParams},#{returnValue},#{costTime}))public void insert(OperateLog operateLog); } 获取当前登录用户获取request对象从轻去偷中获取到jwt令牌解析令牌获取出当前用户的id 1.2.2 编码 自定义注解Log 在com.itheima.mytilas 包下新建包 anno创建注解 Log package com.itheima.mytlias.anno;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public interface Log { } 定义切面类完成记录操作日志的逻辑 package com.itheima.mytlias.aop;import com.alibaba.fastjson.JSONObject; import com.itheima.mytlias.mapper.OperateLogMapper; import com.itheima.mytlias.pojo.OperateLog; import com.itheima.mytlias.utils.JwtUtils; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest; import java.time.LocalDateTime; import java.util.Arrays;Slf4j//日志 Component//交给IOC容器管理 Aspect//切面类 public class LogAspect {//为了拿到当前这次请求的请求头对象我们直接注入一个HttpServletRequest 对象AutowiredHttpServletRequest request;//调用mapper接口中的insert方法记录日志因此注入一个OperateLogMapper对象AutowiredOperateLogMapper operateLogMapper;Around(annotation(com.itheima.mytlias.anno.Log))public Object recordLog(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {//操作人id通过获取请求头张的jwt令牌来解析令牌String jwt request.getHeader(token);Claims claims JwtUtils.parseJWT(jwt);//使用JWT工具类解析jwt令牌Integer operateUser (Integer) claims.get(id);//操作用户的idlog.info(用户id{}, operateUser);//操作时间LocalDateTime operateTime LocalDateTime.now();//操作的类名String className proceedingJoinPoint.getTarget().getClass().getName();// 操作的方法名String methodName proceedingJoinPoint.getSignature().getName();// 操作的方法参数Object[] args proceedingJoinPoint.getArgs();String methodParms Arrays.toString(args);//调用方法之前的时间用于计算方法运行耗时long begin System.currentTimeMillis();//调用原始目标方法Object result proceedingJoinPoint.proceed();//调用方法之后的时间用于计算方法运行耗时long end System.currentTimeMillis();// 返回值String returnValue JSONObject.toJSONString(result);// 操作耗时long costTime (end - begin);//记录操作日志OperateLog operateLog new OperateLog(null, operateUser, operateTime, className, methodName, methodParms, returnValue, costTime);operateLogMapper.insert(operateLog);//在控制打印输出日志log.info(AOP记录操作日志{}, operateLog);//返回值return result;} } 在所有增删改的方法上加上注解Log
http://www.hkea.cn/news/14405272/

相关文章:

  • 如何建设学校门户网站设计素材网站哪个好
  • 泰州企业做网站温州网站开发服务商
  • 做代理的网站如何做搞笑的视频视频网站
  • 如何在手机上搭建网站网站建设小组五类成员
  • 正规的网站建设工作室免费网站建设服务
  • 多品牌网站建设wordpress增加知识共享协议
  • 网站运营与管理实验报告设计方案构思和设计过程
  • 物流营销型网站案例平面设计需要用到的软件
  • 西安市城乡建设厅网站动画素材库免费下载
  • dw做网站的导航栏怎么做搭建网站 开源软件
  • 最基本的网络营销站点dede织梦做的网站 栏目页有切换js 怎么循环子栏目 调子栏目
  • 适用于手机的网站怎么建设国家高新区网站建设
  • 如何用wordpress建一个网站百度网站公司信息推广怎么做
  • 电商网站seo公司域名网站做优化外链
  • 如何自己做网站推广淘宝客从零开始网站开发
  • 手机网站生成app客户端东莞大岭山中学
  • 凡科平台网站怎么建设江阴公司做网站
  • 彬县网站一般网站自己可以做播放器吗
  • 爱站小工具计算器巴彦淖尔网站建设公司
  • 郑州做的比较好网站公司吗专业群建设网站
  • 湖南网站营销seo方案设计上海展会2021时间
  • 如何自己免费做网站网站模板免费推荐
  • 蚌埠市建设局网站泰州网站制作哪家好
  • 苏州网站建设logo岱山县建设网站
  • 做商品网站的教学视频教程网站建设的科目
  • 创建网站需要哪些要素前端开发培训找不到工作
  • 品牌红酒的网站建设网站后台从哪里进去
  • 建立网站原则网站降权怎么做
  • 做公司+网站建设价格低百度网站源码优化检测
  • 网站开发项目管理文档模板建设网站需要多少钱济南兴田德润厉害吗