1.分布式锁注解开发
解决场景:
1、自己代码实现分布式锁、存在一定的安全隐患
2、每个人实现方式不统一,统一规范
具体实现:
1、基于RLock实现类似 @Transcation注解功能
2、在需要加锁的方法上加入自定义注解
3、通过AOP统一管理分布锁
2.Redis缓存注解开发作用于方法类或方法
解决场景:
1、将公共查询接口及查询频繁的接口数据,统一封装存入Redis
2、减少数据库连接池消耗、服务接口频繁调用,提升系统性能及响应速度
3、存入规则:常量数据存入本地缓存,必要的业务数据存入Redis
具体实现:
1、基本Redis实现缓存管理,自定义注解,类似本地 @Cacheable 注解功能
2、将需要存入缓存中数据对应的Service接口加入缓存注解,
3、通过AOP实现缓存管理(查询、更新、删除)
3.Lamdba表达式实现事务统一处理
解决场景:
1、避免业务方法耗时较长,导致数据库连接池长时间占有
2、避免业务方法未加事务,导致存在脏数据
具体实现:
1、定义函数接口,在具体业务代码中,将业务更新接口写在lambda表达式中
2、定义业务数据更新接口,接收参数为函数接口集合
3、业务执行完成后,调用业务数据更新接口统一处理事务