一.原理: 1.做一个field注解,注解有两个参数:是否必填.toString之后的最大长度 2.对某个request类(或基类),使用注解标记某个字段的校验详情 3.通用的static方法,利用反射获取属性的值,并做校验.不通过则抛出特定的异常 二.上代码: 异常类: package com.test; /** * 基础异常 * @author zyydd * @date 2019/1/24 10:33 * @version 1.0.0 **/ public class BaseExcept…
用postman做接口测试的,有些接口需要带上当前时间的时间戳作为请求的入参,postman支持这种功能吗? 答案是肯定的. 文中有使用时间戳的两种方法和postman常用的预定义变量. 例子中接口的功能:获取当天的全部日程信息 如果希望postman中的用例无论什么时间执行都可以通过的话,就需要根据动态取得当前时间的时间戳作为接口的入参.有2种方法. 第一种方法:postman预定义的动态变量 {$timestamp} 图中$timestamp是预定义变量的名称,必须以$开头,postman中…
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > .katex-html { display: block; } .katex-display > .katex > .katex-html > .tag { position: absolute; right: 0px; } .katex { font: 1.21em / 1.2 KaTeX…
一.参数管理 在编程系统中,为了能写出良好的代码,会根据是各种设计模式.原则.约束等去规范代码,从而提高代码的可读性.复用性.可修改,实际上个人觉得,如果写出的代码很好,即别人修改也无法破坏原作者的思路和封装,这应该是非常高水准. 但是在日常开发中,碍于很多客观因素,很少有时间去不断思考和优化代码,所以只能从实际情况的角度去思考如何构建系统代码,保证以后自己还能读懂自己的代码,在自己的几年编程中,实际会考虑如下几个方面:代码层级管理,命名和注释统一,合理的设计业务数据库,明确参数风格. 这里就来…
转载:https://blog.csdn.net/Daybreak1209/article/details/80591566 应用一:方法入参校验 由于系统多个方法入参均对外封装了统一的Dto,其中Dto中几个必传参数在每个方法中都会进行相同的校验逻辑.笔者考虑采用Spring AOP进行优化,拦截方法进行参数校验.测试case实现如下: Before   /**   * 被代理的目标类   */   @Service   public class PayOrderTarget {   @Aut…
1.mybatis入参方式 @Param注解参数(注解) 封装成对象入参 public int updatePassword(@Param("id")int id,@Param("pwd")String newpwd); 注意:一般情况下:参数超过3个,就用对象. 2.MyBatis缓存 1).分类 一级缓存:SqlSession级别的缓存.(在同一个SqlSession中,缓存有效,默认打开) 二级缓存:应用级别缓存(全局缓存,随便在哪里都能取得到.默认是关闭的)…
入参绑定 入参应该定义成实体,而不是多个参数,方便扩展.[FromBody]和[FromUrl]特性也最好加上. public ActionResult<Pet> Create([FromBody] Pet pet) public class Pet { public string Name { get; set; } [FromQuery] // Attribute is ignored. public string Breed { get; set; } } 入参校验 简单的入参校验可通过…
一.简介 后台业务入口类Controller,对于入参的合法性校验,可以简单粗暴的写出一堆的 if 判断,如下: @RestController @RequestMapping("user") public class UserController { @PostMapping("saveUser") public String saveUser(UserInfoVo userInfoVo){ if(StrUtil.isBlank(userInfoVo.getUse…
一.modelattribute注解 @ModelAttribute注解的方法有两种,一种无返回值,一种有返回值,方法的可以用@RequestParam注解来获取请求的参数,如果不获取参数,可以不用此注解 1)无返回值,用Map中的对象放入ImpliciteModel中,key就是map中存储的key. @ModelAttribute    public void setUser(@RequestParam(value="name",required=false) String nam…
日常作业中免不了频繁处理 GET/POST 的入参,你当然可以每个 action 中都重复地去做这些事情, 从 query 或 body 取出入参, 对可选的入参进行判空, 处理入参的类型转换, 对入参进行逻辑校验,数字是否超限,类型是否非法等... 但这些通用的逻辑可通过抽取到插件或服务中,避免代码冗余和重复劳动. egg-validation Egg.js 中可通过 egg-validation 插件来减少这部分的工作量.通过该插件,上面大部分工作可转成简单的配置. 安装插件 $ yarn…