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

还是网站好网站建设模板犀牛云

还是网站好,网站建设模板犀牛云,网页搜索关键字,seo搜索是什么意思[公共字段自动填充] 核心:在切面类中捕获需要填充公共字段的 Mapper 方法,方法上使用注解加以标识,通过反射拿到需要填充的字段赋值方法,进行赋值操作 1、自定义注解 AutoFill Target(ElementType.METHOD) Retention(RetentionPo…

[公共字段自动填充]

核心:在切面类中捕获需要填充公共字段的 Mapper 方法,方法上使用注解加以标识,通过反射拿到需要填充的字段赋值方法,进行赋值操作

1、自定义注解 AutoFill

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {//数据库操作类型:UPDATE INSERTOperationType value();
}

2、枚举对象类

public enum OperationType {/*** 更新操作*/UPDATE,/*** 插入操作*/INSERT
}

3、自定义切面 AutoFillAspect

@Aspect
@Component
@Slf4j
public class AutoFillAspect {/*** 切入点*/@Pointcut("execution(* com.sky.mapper.*.*(..)) && @annotation(com.sky.annotation.AutoFill)")public void autoFillPointCut(){}/*** 前置通知,在通知中进行公共字段的赋值*/@Before("autoFillPointCut()")public void autoFill(JoinPoint joinPoint){log.info("开始进行公共字段自动填充...");//获取到当前被拦截的方法上的数据库操作类型MethodSignature signature = (MethodSignature) joinPoint.getSignature();//方法签名对象AutoFill autoFill = signature.getMethod().getAnnotation(AutoFill.class);//获得方法上的注解对象OperationType operationType = autoFill.value();//获得数据库操作类型//获取到当前被拦截的方法的参数--实体对象Object[] args = joinPoint.getArgs();if(args == null || args.length == 0){return;}//约定好放在第一个参数位置Object entity = args[0];//准备赋值的数据LocalDateTime now = LocalDateTime.now();Long currentId = BaseContext.getCurrentId();//就是获取修改人的id值,不同项目不同的获取方法//根据当前不同的操作类型,为对应的属性通过反射来赋值if(operationType == OperationType.INSERT){//为4个公共字段赋值try {Method setCreateTime = entity.getClass().getDeclaredMethod(AutoFillConstant.SET_CREATE_TIME, LocalDateTime.class);Method setCreateUser = entity.getClass().getDeclaredMethod(AutoFillConstant.SET_CREATE_USER, Long.class);Method setUpdateTime = entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_TIME, LocalDateTime.class);Method setUpdateUser = entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_USER, Long.class);//通过反射为对象属性赋值setCreateTime.invoke(entity,now);setCreateUser.invoke(entity,currentId);setUpdateTime.invoke(entity,now);setUpdateUser.invoke(entity,currentId);} catch (Exception e) {e.printStackTrace();}}else if(operationType == OperationType.UPDATE){//为2个公共字段赋值try {Method setUpdateTime = entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_TIME, LocalDateTime.class);Method setUpdateUser = entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_USER, Long.class);//通过反射为对象属性赋值setUpdateTime.invoke(entity,now);setUpdateUser.invoke(entity,currentId);} catch (Exception e) {e.printStackTrace();}}}
}

4、在Mapper接口的方法上加入 AutoFill 注解

@Mapper
public interface CategoryMapper {/*** 插入数据* @param category*/@AutoFill(value = OperationType.INSERT)void insert(Category category);/*** 根据id修改分类* @param category*/@AutoFill(value = OperationType.UPDATE)void update(Category category);}
http://www.yayakq.cn/news/831644/

相关文章:

  • 网站集约化建设流程外国网站在中国做推广
  • 数字城市建设网站品牌策划与推广方案
  • 邢台网站建设策划聊城专业网站建设公司电话
  • ss网站代码深圳 网站设
  • 网站做的好的公司php 5.6 wordpress
  • 免费做淘客cms网站海北公司网站建设价格低
  • 做网站学什么语言阿里云域名解析
  • 举例说明商业网站的建设流程做网站还有搞头吗
  • 网站基础模块建设开一个做网站的工作室
  • 网站建设 主机托管做彩票网站需要多少钱
  • 河南省城乡和建设厅网站首页全文wordpress主题
  • 网站相册代码请人制作一个app多少钱
  • 网站浮动窗口代码php网站友情链接出售
  • 网站服务器机房好看的单页面网站
  • 网站二次开发是什么淘宝网站建设不允许
  • 淘宝天猫优惠券网站怎么做雅思培训班
  • 专业网站制作服务网站栏目相关内容在哪采集啊
  • 自己做软件 做网站需要学会哪些有专门做摄影画册的网站吗
  • 贵港购物网站开发设计宜宾团购网站建设
  • 网站品牌建设方案湖南企业网站
  • 怎么做网站的浏览栏如何做视频网站技术指标
  • 建立主题网站的顺序是龙之向导外贸网站怎么样
  • 网站建设常见问题及解决办法彬县网约车
  • 南京公司网站建设费用网络培训班心得体会800字
  • 律所网站建设要求书中国制造网一级类目
  • 嘉定专业网站建设传智黑马培训机构
  • 如何快速收录一个网站的信息网站 解析
  • 广州做贷款有什么网站扬州市网站建设
  • 网站开发面向对象中国企业黄页信息网
  • 推荐西安优秀的响应式网站建设公司wordpress博客价格