场景:使用AOP切面,对微服务工程进行入库记录(fegin接口调用)
参考:
若依微服务版本gitee
若依微服务部署参考
@EnableFeignClients注解的属性字段basePacka详解
若依微服务官方参考文档
微服务aop工程日志参考
一、若依的使用,使用postman获取token
使用postman访问一下地址
http://ip:端口/auth/login
参数为
{
“username”:“,
“password”:”“,
“code”:”“,
“uuid”:””
}
获取到token后
访问swagger,进行接口的测试访问
二、AOP实现微服务工程日志(代码参考于若依的微服务版本)
1、注意事项
1.1在Application启动类上的@EnableFeignClients指定要扫描的包
示例为
@EnableFeignClients(basePackages = {"service.Impl","activity.feign"})@SpringBootApplicationpublic class ActivityApplication {public static void main(String[] args) {SpringApplication.run(ActivityApplication.class, args);}}
若不指定会出现调用的feign接口实现类无法注入
1.2 异步调用feign接口会导致请求头的丢失,解决方案
/** * 保存系统日志记录 */public void saveSysLog(SysOperLog sysOperLog) {//TODO :获取当前线程请求头信息(解决Feign异步调用丢失请求头问题)RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();ThreadUtil.execAsync(new Runnable() {@Overridepublic void run() {//每一个线程都来共享之前的请求数据RequestContextHolder.setRequestAttributes(requestAttributes);remoteLogService.saveLog(sysOperLog);}});}
2.完整代码实现(请结合若依微服务版本的代码)
若依微服务版本gitee
1.
2