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

网站只收录无权重腾讯企点网页版

网站只收录无权重,腾讯企点网页版,上海野猪seo,义乌外贸建网站需求描述#xff1a; 需要对mapper查询的入参的某个属性值进行特殊处理后查询 不影响原来业务且方便扩展维护 1#xff0c;自定义注解 import java.lang.annotation.*;/*** 针对 mapper层入参 按照一定规则进行特殊处理重新赋值*/ Target(ElementType.METHOD) Retention(Ret…需求描述 需要对mapper查询的入参的某个属性值进行特殊处理后查询 不影响原来业务且方便扩展维护 1自定义注解 import java.lang.annotation.*;/*** 针对 mapper层入参 按照一定规则进行特殊处理重新赋值*/ Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented Inherited public interface MapperRequestData {/*** 指定执行规则的方法默认方法为transferRequestData* return*/String method() default transferRequestData;Class? extends MapperRequestDataInterface operation(); } 2定义动态处理指定业务的接口 /*** 不同的业务场景 其 针对入参 解析处理规则不同须根据自身情况实现该接口* param T*/ public interface MapperRequestDataInterface {void transferRequestData(Object request);} 3定义切面 MapperRequestDataAspect import com.taia.yms.aop.reponse.inter.MapperRequestDataInterface; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.Signature; 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.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.lang.reflect.Method;/*** 针对 mapper层入参进行特殊处理*/ Component Aspect public class MapperRequestDataAspect {private static final Logger log LoggerFactory.getLogger(MapperRequestDataAspect.class);//定义pointcut签名Pointcut(execution(* com.taia.yms.mapper.*.*(..)) annotation(com.taia.yms.aop.reponse.MapperRequestData))private void pointCut() {//方法为空仅做签名}//对切点方法进行前置增强就是在调用切点方法前进行做一些必要的操作这就成为增强Before(pointCut())public void getRes(JoinPoint joinPoint){// 获取方法签名Signature signature joinPoint.getSignature();MethodSignature methodSignature (MethodSignature) signature;Method method methodSignature.getMethod();MapperRequestData annotation method.getAnnotation(MapperRequestData.class);Object[] objects joinPoint.getArgs();// 查找并获取注解try{// 读取注解的属性Class? extends MapperRequestDataInterface operation annotation.operation();MapperRequestDataInterface operationInstance operation.getDeclaredConstructor().newInstance();String methoded annotation.method();Method operationMethod operation.getDeclaredMethod(methoded, Object.class);operationMethod.invoke(operationInstance, objects);}catch (Exception e){log.error(类[{}]的方法[{}]执行失败报错:{},annotation.operation().getName(),annotation.method(),e.getMessage());}}} 4定义指定业务指定入参处理逻辑 import com.taia.yms.aop.reponse.inter.MapperRequestDataInterface; import com.taia.yms.entity.reqbody.TechnologyPageReqBody; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.stream.Collectors;public class TechnologySelectConfigListReqRule implements MapperRequestDataInterface {private static final String PREFIX_SRE CONTAINS_;Overridepublic void transferRequestData(Object request) {TechnologyPageReqBody pageReqBody (TechnologyPageReqBody) request;if(pageReqBody null || CollectionUtils.isEmpty(pageReqBody.getDataTypeList())){return;}ListString list pageReqBody.getDataTypeList();ListString collect list.stream().map(v - PREFIX_SRE v).collect(Collectors.toList());pageReqBody.setDataTypeList(collect);} } 5相关对象类 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import com.taia.yms.entity.ExportPageReqBody; import java.util.List;Data AllArgsConstructor NoArgsConstructor Accessors(chain true) public class TechnologyPageReqBody extends ExportPageReqBody{private Long id;private String fab;private String productId;private String technology;private ListString dataTypeList;private String createdByName;private String lastUpdatedByName;// ALL、为空、不为空 all isNull isNotNullprivate String isNullable; } import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.util.List;/*** ClassName ExportPageReqBody* 导出 和 分页数据**/ Data AllArgsConstructor NoArgsConstructor Accessors(chain true) public class ExportPageReqBody {/**页码*/ApiModelProperty(example 1)private Integer pageNum 1;/**页面大小*/ApiModelProperty(example 10)private Integer pageSize 10;/**1-导出excel 0-导出CSV*/private String isExcel;/**1-只导出表头0或空-导出表头和数据*/private String isEmpty;/**1-配置数据 0或空-待添加配置数据*/private String isConfig;/**选择导出有值时只导出选中的id*/private ListLong selectedIds;/**当前登录用户的userId*/private String userNo; } 6在对应mapper层的对应方法加添加使用 /*** 查询已配置数据(支持字段模糊查询)*/MapperRequestData(operation TechnologySelectConfigListReqRule.class)ListWipProductInfoTab selectConfigList(TechnologyPageReqBody technologyPageReqBody);
http://www.w-s-a.com/news/82470/

相关文章:

  • 建网站要定制还是第三方系统传奇网站模板psd
  • 免费搭建企业网站什么叫网站定位
  • 网站建设cms程序员培训班
  • 网站seo技术wordpress editor ios
  • 红酒网站设计成立公司需要哪些手续
  • 广州做网站哪个好网站建网站建设网站站网站
  • 如何快速提升网站pr短剧个人主页简介模板
  • 上海网站建设 永灿百度权重3的网站值多少
  • 公司展示网站模板模板工
  • 网站建设收费详情舟山公司做网站
  • 深圳宝安区住房和建设局网站html模板大全
  • 和田哪里有做网站的地方wordpress地址更改
  • 恒通建设集团有限公司网站企业网站百度指数多少算竞争大
  • 雅虎网站收录提交入口如何使用wordpress搭建网站
  • 微商城网站建设怎么样发稿是什么意思
  • dz建站与wordpress群晖做网站服务器速度快吗
  • 做手机网站的公司网站建设 app开发 图片
  • 网站开发技术背景介绍wordpress数据库重置密码
  • 开发建设网站的实施过程是一个logo设计品牌
  • 做360pc网站排名首页工程造价信息网官网首页
  • 产品销售网站模块如何设计大数据和网站开发
  • 现在帮别人做网站赚钱不济南做网站建设公司
  • 嘉兴网站建设哪家好最近三天的国际新闻大事
  • 安丘网站建设制作做网站口碑比较好的大公司
  • 成都专业做网站公司哪家好优化大师下载安装免费
  • 防蚊手环移动网站建设广东深圳有几个区
  • 网站建设找哪些平台宜兴网站开发
  • 免费网站应用软件wordpress添加动态图标
  • 中小企业网站建设客户需求调查问卷昆明网站建设一条龙
  • 网站内容的特点wordpress 移动端网页