实验室网站制作,西昌规划和建设局网站,社交网络推广方法有哪些,专业模板网站制作多少钱文章目录 4.1后端统一设计思想4.1.1后端统一返回格式对象4.1.2后端统一响应状态码4.1.3后端统一异常处理类4.1.4StringUtils类4.1.5 RedisUtils类 4.1后端统一设计思想
4.1.1后端统一返回格式对象
com.easypan.entity.vo.ResponseVO
Data
public class ResponseVOT … 文章目录 4.1后端统一设计思想4.1.1后端统一返回格式对象4.1.2后端统一响应状态码4.1.3后端统一异常处理类4.1.4StringUtils类4.1.5 RedisUtils类 4.1后端统一设计思想
4.1.1后端统一返回格式对象
com.easypan.entity.vo.ResponseVO
Data
public class ResponseVOT {private String status;private Integer code; //响应状态码private String info; //响应消息private T data; //响应数据
}4.1.2后端统一响应状态码
com.easypan.entity.enums.ResponseCodeEnum
public enum ResponseCodeEnum {CODE_200(200, 请求成功),CODE_404(404, 请求地址不存在),CODE_600(600, 请求参数错误),CODE_601(601, 信息已经存在),CODE_500(500, 服务器返回错误请联系管理员),CODE_901(901, 登录超时请重新登录),CODE_902(902, 分享连接不存在或者已失效),CODE_903(903, 分享验证失效请重新验证),CODE_904(904, 网盘空间不足请扩容);private Integer code; //状态码private String msg; //状态码对应的信息ResponseCodeEnum(Integer code, String msg) {this.code code;this.msg msg;}public Integer getCode() {return code;}public String getMsg() {return msg;}
}4.1.3后端统一异常处理类
com.easypan.exception.BusinessException
Data
AllArgsConstructor
public class BusinessException extends RuntimeException {private ResponseCodeEnum codeEnum; //后端统一响应状态码private Integer code; //自定义code值private String message; //自定义消息public BusinessException(String message, Throwable e) {super(message, e);this.message message;}public BusinessException(String message) {super(message);this.message message;}public BusinessException(Throwable e) {super(e);}/*** Description 根据指定codeEnum创建Exception对象*/public BusinessException(ResponseCodeEnum codeEnum) {super(codeEnum.getMsg());this.codeEnum codeEnum;this.code codeEnum.getCode();this.message codeEnum.getMsg();}/*** Description: 自定义code、message来创建Exception对象*/public BusinessException(Integer code, String message) {super(message);this.code code;this.message message;}/*** 重写fillInStackTrace 业务异常不需要堆栈信息提高效率.*/Overridepublic Throwable fillInStackTrace() {return this;}}4.1.4StringUtils类
com.easypan.utils.StringUtils
public class StringUtils {public static String encodeByMD5(String originString) {return StringUtils.isEmpty(originString) ? null : DigestUtils.md5Hex(originString);}public static boolean isEmpty(String str) {if (null str || .equals(str) || null.equals(str) || \u0000.equals(str)) {return true;} else if (.equals(str.trim())) {return true;}return false;}public static String getFileSuffix(String fileName) {Integer index fileName.lastIndexOf(.);if (index -1) {return ;}String suffix fileName.substring(index);return suffix;}public static String getFileNameNoSuffix(String fileName) {Integer index fileName.lastIndexOf(.);if (index -1) {return fileName;}fileName fileName.substring(0, index);return fileName;}public static String rename(String fileName) {String fileNameReal getFileNameNoSuffix(fileName);String suffix getFileSuffix(fileName);return fileNameReal _ getRandomString(Constants.LENGTH_5) suffix;}public static final String getRandomString(Integer count) {return RandomStringUtils.random(count, true, true);}public static final String getRandomNumber(Integer count) {return RandomStringUtils.random(count, false, true);}public static String escapeTitle(String content) {if (isEmpty(content)) {return content;}content content.replace(, lt;);return content;}public static String escapeHtml(String content) {if (isEmpty(content)) {return content;}content content.replace(, lt;);content content.replace( , nbsp;);content content.replace(\n, br);return content;}public static boolean pathIsOk(String path) {if (StringUtils.isEmpty(path)) {return true;}if (path.contains(../) || path.contains(..\\)) {return false;}return true;}
}4.1.5 RedisUtils类
com.easypan.utils.RedisUtils
Slf4j
Component(redisUtils)
public class RedisUtilsV {Resourceprivate RedisTemplateString, V redisTemplate;/*** 普通缓存放入* param key 键* param value 值* return true成功 false失败*/public boolean set(String key, V value) {try {redisTemplate.opsForValue().set(key, value);return true;} catch (Exception e) {log.error(设置redisKey:{},value:{}失败, key, value);return false;}}/*** 普通缓存放入并设置时间** param key 键* param value 值* param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期* return true成功 false 失败*/public boolean setex(String key, V value, long time) {try {if (time 0) {redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);} else {set(key, value);}return true;} catch (Exception e) {log.error(设置redisKey:{},value:{}失败, key, value);return false;}}//获取指定key的value值public V get(String key) {return key null ? null : redisTemplate.opsForValue().get(key);}/*** 删除缓存key 可以传一个值 或多个*/public void delete(String... key) {if (key ! null key.length 0) {if (key.length 1) {redisTemplate.delete(key[0]);} else {redisTemplate.delete((CollectionString) CollectionUtils.arrayToList(key));}}}
}