自己实现网关-基于springboot stater实现拦截器链

1、 定义拦截器接口

  1. type()方法: 返回拦截器类型 pre,route,post,error
  2. order()方法:返回拦截器执行顺序
  3. run() 方法: 执行相关的业务逻辑

2、定义上下文传输对象

使用map存储并且要保证线程安全,使用 ConcurrentHashMap+ThreadLocal实现

3、配置类和执行器类

配置类主要是 springboot的 stater 指定的类,用来注入bean
执行器类 主要运行 拦截器

  1. 拦截器的初始化 在bean初始化的时候完成拦截器初始化 实现spring InitializingBean接口 实现里面的 afterPropertiesSet方法 获取容器中所有实现了 拦截器接口的 bean 将这些bean根据type分类 放入全局变量中 并调用 order方法 进行排序
  2. 定义run方法,run方法中需要传入 request,response对象,每次调用run方法都要获取上下文传输对象 并设置 request,response,提供给filter中使用

代码具体实现 都放在 gitee了

https://gitee.com/wang_1009654487/my-runner

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值