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

网页ui设计网站南宁白帽seo技术

网页ui设计网站,南宁白帽seo技术,平面设计主要做什么ui,宜昌做网站公司有哪些网站问题分析 总会有些公共字段,例如创建时间和创建人 实现思路 对mapper定义注解,使用切面思想来判断是不是更新和新增操作对于指定的操作来更新公共字段 自定义操作类型 package com.sky.enumeration;/*** 数据库操作类型*/ public enum OperationType {/*…

问题分析

  • 总会有些公共字段,例如创建时间和创建人

在这里插入图片描述

实现思路

  • 对mapper定义注解,使用切面思想来判断是不是更新和新增操作
  • 对于指定的操作来更新公共字段

在这里插入图片描述

自定义操作类型

在这里插入图片描述

package com.sky.enumeration;/*** 数据库操作类型*/
public enum OperationType {/*** 更新操作*/UPDATE,/*** 插入操作*/INSERT}

自定义注解AutoFill

在这里插入图片描述

package com.sky.annotation;import com.sky.enumeration.OperationType;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;/*** 自动填充注解*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {OperationType value();
}

自定义切面

  1. 定义切点
  2. 获取当前的mapper方法的具体操作类型
  3. 获取当前的mapper方法的参数 实体对象entity
  4. 获取要填充的数据
  5. 根据操作类型进行填充
package com.sky.aspect;import cn.hutool.core.util.ObjectUtil;
import com.sky.annotation.AutoFill;
import com.sky.context.BaseContext;
import com.sky.enumeration.OperationType;
import com.sky.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;import java.time.LocalDateTime;import static com.sky.constant.AutoFillConstant.*;
import static com.sky.constant.MessageConstant.AUTO_FILL_FAILED;/*** 自动填充切面*/
@Aspect
@Component
@Slf4j
public class AutoFillAspect {// 切入点// mapper包下的所有方法 所有的参数类型@Pointcut("execution(* com.sky.mapper..*.*(..)) && @annotation(com.sky.annotation.AutoFill)")public void autoFillPointCut() {}// 前置通知 在方法执行之前执行// 进行自动填充@Before("autoFillPointCut()")public void before(JoinPoint joinPoint) {log.info("自动填充切面执行");// 获取当前的mapper方法的具体操作类型MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature();OperationType operationType = methodSignature.getMethod().getAnnotation(AutoFill.class).value();// 获取当前的mapper方法的参数 实体对象entityObject[] args = joinPoint.getArgs();//非空判断if(ObjectUtil.isEmpty(args)) return;// 获取实体对象Object entity = args[0];// 获取要填充的数据// 获取当前登录用户的信息Long currentUserId = BaseContext.getCurrentId();// 获取当前时间LocalDateTime now = LocalDateTime.now();// 根据操作类型进行填充switch (operationType) {case INSERT:// 插入操作try {entity.getClass().getMethod(SET_CREATE_USER, Long.class).invoke(entity, currentUserId);entity.getClass().getMethod(SET_UPDATE_USER, Long.class).invoke(entity, currentUserId);entity.getClass().getMethod(SET_CREATE_TIME, LocalDateTime.class).invoke(entity, now);entity.getClass().getMethod(SET_UPDATE_TIME, LocalDateTime.class).invoke(entity, now);} catch (Exception e) {log.error(AUTO_FILL_FAILED, e);throw new BaseException(AUTO_FILL_FAILED);}break;case UPDATE:// 更新操作try {entity.getClass().getMethod(SET_UPDATE_USER, Long.class).invoke(entity, currentUserId);entity.getClass().getMethod(SET_UPDATE_TIME, LocalDateTime.class).invoke(entity, now);} catch (Exception e) {log.error(AUTO_FILL_FAILED, e);throw new BaseException(AUTO_FILL_FAILED);}break;default:break;}}
}

使用

    @AutoFill(OperationType.UPDATE)void update(Category category);
    @AutoFill(OperationType.INSERT)@Insert("insert into category(type, name, sort, status, create_time, update_time, create_user, update_user)" +" VALUES" +" (#{type}, #{name}, #{sort}, #{status}, #{createTime}, #{updateTime}, #{createUser}, #{updateUser})")void insert(Category category);
http://www.hkea.cn/news/982333/

相关文章:

  • 1688网站的特点全网营销系统
  • 西安做网站企业网址怎么申请
  • 专业网站建设品牌百度指数里的资讯指数是什么
  • 做网站规避什么网站制作
  • 网站开发工作方案2022拉人头最暴利的app
  • 网站建设好还是阿里巴巴好磁力猫torrent kitty
  • wordpress跨域访问前端优化网站
  • 住房和城乡建设部网站买卖合同北京中文seo
  • WordPress自己安装了插件深圳seo推广外包
  • 建立网站舆情分析报告范文
  • wordpress 空格 插件班级优化大师app
  • 成都有实力的网站建设网络培训心得
  • 中企高呈建设网站在百度怎么创建自己的网站
  • 女的和女的做那个视频网站怎么在网上做网络营销
  • 网站开发需要什么软件百度怎样发布作品
  • 专门做宠物食品的网站市场调研怎么做
  • 兰州网站建设q.479185700棒成年s8视频加密线路
  • 付费网站推广seo关键词排名优化怎么收费
  • 网站由那些组成google网页搜索
  • 对一个网站做性能测试谷歌paypal官网入口
  • 北京住房投资建设中心网站首页快速排名怎么做
  • 中国网站制作 第一个佛山网站优化
  • thinkphp做的教育网站微商引流推广
  • 做特卖网站手机版电商最好卖的十大产品
  • 怎样做网站平叿trinseo公司
  • 北京大兴最专业的网站建设公司如何推广一个项目
  • 网页设计最牛的网站建设宁波网站优化公司哪家好
  • 建设通查询如何做网站推广及优化
  • 城乡建设网站首页百度seo收录软件
  • 永久免费建个人网站培训网站建设