Java后端常用工具类、缓存接口、消息队列接口、第三方支付接口封装;Restful接口参数验证,错误信息友好提示。
[TOC]
/**
*
* @param key 锁标识
* @param attempt 重试次数
* @return
*/
public boolean lock(String key,int attempt);
/**
*
* @param key 锁标识
* @param time 过期时间
* @param timeUnit 过期时间单位
* @param attemptNum 重试次数
* @return
*/
public boolean lock(String key, long time, TimeUnit timeUnit,int attemptNum)
在Spring Boot 项目启动类添加该注解开启分布式方法锁
普通Spring项目配置component-scan自动扫描com.yz.common.distributed.lock.configuration包即可
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MethodLock {
/**
* 锁标识
* @return
*/
String key() default "";
/**
* 时间
* @return
*/
long time() default 10;
/**
* 单位
* @return
*/
TimeUnit timeUnit() default TimeUnit.SECONDS;
/**
* 是否自动解锁
* @return
*/
boolean autoUnLock() default true;
/**
* 重试次数
* @return
*/
int attemptNum() default 0;
}
在需要使用分布式方法锁的method上使用该注解即可
① ElasticSearch 增删改操作
② ElasticSearch 高级查询(链式调用)
网络类(HttpUtil)
时间类(DateUtils)
JSON类(JsonUtil)
安全类(MD5加密、AES加密、Base64编码、3DES加密、RSA加密、SHA256)
图片处理(GraphicsMagick)
...
①redis常用API接口(RedisUtil)
②基于redis实现分布式锁(RedisLockUtil)
①使用简单工厂模式实现预支付订单生成(位于com.yz.common.payment.trade.pay包下)
②使用建造者模式对预支付订单参数进行动态构建(位于com.yz.common.payment.trade.pay.builder包下)
③通过ThirdPayFactory工厂类获取PayService
④发起预支付订单、退款、订单查询调用
①请求参数转换(非Form表单或get+参数方式):
自定义web拦截器(DataSafeFilter),加密json数据解析为Map保存到HttpServletRequest
中;自定义HttpServletRequest包装类(IHttpServletRequestWrapper),将解析的Map数
据保存到Parameter中
②基于hibernate-validator restful接口参数验证