SpringAOP实战
SpringAOP实战
专业的程序员
十五年开发经验,10年互联网老兵,曾担任旺旺集团核心开发课副课长兼架构师,在多家互联网企业中担任架构师、开发组长等职位。常年奋战在微服务、高并发、低代码一线,喜欢钻研技术,喜欢分享经验
展开
-
Spring AOP实战开发(四)AOP+Redis实现接口限流
需求:要求同一个接口同一时间 仅能处理N个请求,超过就返回;不是时间窗口也不是秒杀,接口处理完成后又可以继续接收请求; 分析:有点像令牌桶算法,但是并不是每隔一段时间放几个令牌,而是永远只有这几个令牌;计划采用redis的increase方式,设定一个最大值Max,每次请求先判定当前key是否超过Max,如果已经超过就返回,没有超过就自增,分布式可用; 实现: 创建一个注解类AccessLimit ,key是需要需要自增的redis中的key,可以由接口提供,limit就是最大值 @Inher.原创 2020-11-17 18:12:10 · 649 阅读 · 0 评论 -
Spring AOP实战开发(三) 热点日志写入数据库
有些日志信息希望可以写入数据库便于分析,有些日志不需要,这时可以自定义一个日志注解,通过AOP来动态配置需要写入日志的方法。 第一步:定义注解,方法级别 value是可以是该方法的中文解释 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Log { String ...原创 2019-03-19 15:35:00 · 643 阅读 · 0 评论 -
Spring AOP实战开发(二) 统一controller层日志输出
好,欢迎大家继续关注我的博客,今天来给大家分享AOP的第二个实战案例,就是统一的日志输出。在开发的工作中,经常要求我们把一个请求的入参和请求时间打印出来,代码很简答 直接贴出来供大家参考 @Component @Aspect public class WebLogAspect { private static final Logger logger = LoggerFacto...原创 2019-03-11 11:15:50 · 1237 阅读 · 0 评论 -
Spring AOP实战开发(一) springmvc参数非空检查
本系列将为大家介绍笔者在开发过程中使用aop的一些功能扩展,有从网上看到的,也有自己想的,如果有相似的代码,敬请海涵。 本章将介绍如果通过AOP来对请求的参数进行自动的非空检查并返回。相信部分同学的代码中会出现如下的例子: if (parameters.get("openId") == null || StringUtils.isBlank(param...原创 2019-02-27 09:49:44 · 2307 阅读 · 8 评论