苍穹外卖项目

https://gitee.com/wu-zhezhe/sky-delivery.git

今天设置的是公共字段填充配置

这不属于业务的开发

employee.setUpdateTime(LocalDateTime.now());
employee.setUpdateUser(BaseContext.getCurrentId());

这里是配置员工信息等到菜品信息还会有菜品信息我们可以设置一个公共的字段填充类来专门负责这些字段的修改

新建annotation包和注解文件

@Target(ElementType.METHOD) //表示这个注解可以应用于方法上。

@Retention(RetentionPolicy.RUNTIME) //表示这个注解在运行时是可访问的。

public @interface AutoFill {

     // 操作类型,用于指定自动填充的具体行为。

    OperationType value();

}

新建切入点
/**
 * 切入点
 *
 * */
@Pointcut("execution(* com.sky.mapper.*.*(..)) 121212&&@annotation(com.sky.annotation.AutoFill)")
public void autoFillPointCut(){



}
@Before("autoFillPointCut()") //拦截前执行
public void autoFill(JoinPoint joinPoint) throws Exception {

        //获取拦截的数据库的操作类型
           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();
        //根据当前不同的类型赋值
        if (operationType==OperationType.INSERT){

            //为四个公共字段赋值
          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);
        }else if(operationType==OperationType.UPDATE){

            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);
        }

    }
}

配置好了这个切面类

在Mapper层设置

@AutoFill(value = OperationType.INSERT)

苍穹外卖项目可以使用Postman进行API接口的测试和调试。Postman是一款常用的API开发工具,它可以帮助开发人员发送HTTP请求并查看响应结果,方便进行接口的测试和调试。 在苍穹外卖项目中,可以使用Postman发送各种类型的HTTP请求,比如GET、POST、PUT、DELETE等,来模拟用户操作和测试接口功能。通过Postman,可以验证接口的正确性、查看接口返回的数据、调试接口的参数等。 为了使用Postman进行苍穹外卖项目的接口测试,您需要以下步骤: 1. 下载并安装Postman:您可以从Postman官网(https://www.postman.com/)上下载并安装适合您的操作系统的版本。 2. 打开Postman并创建一个新的请求:打开Postman应用,在界面上选择"New"来创建一个新的请求。 3. 输入接口URL和选择请求方法:在新建请求的界面中,输入苍穹外卖项目的接口URL,并选择适当的请求方法,比如GET或POST。 4. 添加请求参数和请求头:根据需要,您可以添加请求参数和请求头,以便于模拟不同的请求情况。 5. 发送请求并查看响应:点击发送按钮,Postman会向服务器发送请求,并在界面上显示响应结果。您可以查看接口返回的数据、响应状态码等信息。 通过以上步骤,您可以使用Postman进行苍穹外卖项目的接口测试。这样可以帮助您确保接口的正确性和稳定性,提高项目的质量和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值