1. 必填参数统一处理
1.1. 需求
项目使用交易代码的形式,反射调用执行类,统一入口和出口类,相当于直接调用服务层,例如:
/**
* 获取订单详情3003101009
*/
ResponseReport getOrderDetail(RequestReport requestReport);
我们知道如果后台调用入口在Controller,且入口参数灵活填写,那么可以使用SpringMVC自带的参数验证方式,通过注解如@NotNull @Size等来限制入参,错误直接返回
现在我调用入口参数统一了,也不在controller层,但要实现相同的功能,也就是参数验证,特别是必填项
1.2. 解决
1.2.1. 服务层
我的想法同样是通过注解来解决,只是注解的实现方法需要自己实现
通过aop切服务层固定入参列表的方法,判断是否存在注解
@Override
@CheckUnfilled(value={"order_id"})
public ResponseReport getOrderDetail(RequestReport requestReport) {
ResponseReport responseReport = new ResponseReport();
Map reqParams = JSON.parseObject(requestReport.getBody().toString(), Map.class);
Object id = reqParams.get(