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

上海网站建设500元seo搜索引擎优化试题及答案

上海网站建设500元,seo搜索引擎优化试题及答案,乐陵森司特木业,南京做网站的公司有哪些问题分析 总会有些公共字段,例如创建时间和创建人 实现思路 对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.fp688.cn/news/162681.html

相关文章:

  • 网站分析 工具南京seo优化公司
  • 西安医疗网站制作搜索引擎排名优化程序
  • 金湖做网站sem优化师是做什么的
  • wordpress全程ssl百度seo外包
  • 外包加工网收费外贸seo网站建设
  • 济南的企业网站线上引流线下推广方案
  • 济南网站建设(力推聚搜网络)平台推广是什么意思
  • 深圳纯手工seo上海网站排名seo公司
  • 用织梦做模板网站百度天眼查
  • 莘县网站定制24小时免费看的视频哔哩哔哩
  • wordpress Null桔子seo工具
  • 商业设计关键词优化步骤简短
  • 网站建设公司资讯免费手机网站建站系统
  • wordpress如何本地安装黄冈seo顾问
  • 做企业网站需要自己有公司吗网络销售怎么干
  • 邢台专业网站建设公司推荐今日热点新闻头条国内
  • 外贸类网站营销推广策略
  • 世界互联网峰会乌镇深圳关键词优化怎么样
  • 长春做网站的公司哪家好开展网络营销的企业
  • 关于网站建设的合同协议书一个产品的市场营销策划方案
  • 织梦网站在css中怎样做导航百度一下首页官网下载
  • 大连 找人做网站网站域名怎么查询
  • asp网站免费源码企业网站建设模板
  • 企业网站建设兴田德润实惠优化网站内容
  • 邗江建设局网站资料下载东莞做网络推广的公司
  • 网站文章页301重定向怎么做单页应用seo如何解决
  • wordpress无法映射seo网站关键词排名优化公司
  • 馆陶专业做网站推广之家
  • 天津专业的做网站与运营的公司微信怎么推广
  • 建筑招聘网站哪个好典型的网络营销案例