暂无个人介绍
该代码为一个用于Feign接口的模拟(Mock)实现类`FeignMockAspect`,通过切面编程方式对带有`@FeignClient`注解的接口提供模拟响应。在非生产环境中,根据特定配置从Redis中获取Mock数据并转换为对应类型的对象返回,以减少对外部系统的依赖和提高测试效率。使用Hutool工具类和Spring Data Redis进行数据处理与存储操作。
这段代码实现了一个名为 `MockFilter` 的类,继承自 `WebFilter` 接口,用于处理 HTTP 请求和响应。它通过从 Redis 缓存中获取配置信息来决定是否使用模拟数据或缓存数据来响应请求。如果开启了生产模式或关闭了模拟和缓存功能,则直接放行请求。否则,它会检查请求体并根据配置返回相应的模拟或缓存数据。同时,该过滤器支持对响应结果进行处理,并将结果存储回 Redis 中。
`LogAdvice` 类是用于日志记录的 AOP(面向切面编程)组件。它定义了在带有 `@Log` 注解的方法执行前后进行操作的切点。在方法调用前,它记录请求开始时间、描述、URL、参数和 headers。方法成功返回后,记录请求的执行时间和响应。类还包含一些辅助方法,如判断是否为 Feign 请求或控制器请求,并获取请求的相关信息。
redis常用工具类,包括string/hash/list/set基本类型操作,redisson发布订阅功能
`AdviceConfiguration` 类用于动态注册一个基于 AspectJ 的切面顾问,该顾问通过 `@ConditionalOnExpression` 注解控制是否生效。配置中包含一个从 Apollo 获取的 JSON 值,用于构建方法拦截器的切入点表达式,涉及特定包和类。拦截器 `ControllerAdvice` 实现了 `MethodInterceptor`,用于记录请求日志,包括 URL、参数和执行时间,同时根据配置决定是否对返回结果进行加密。
springBoot feign请求日志切面
利用jvm的instrumentation类实现实时修改class文件,用来更新线上代码。
发表了文章
2024-09-18
发表了文章
2024-09-18
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2023-07-20
发表了文章
2023-07-14