@Async注解怎么和自定义的AOP切面注解共用?

欣欣java 2019-01-21 05:15:27
最近在做项目的日志管理模块,操作日志和登录日志是通过Spring的@Aspect切面完成的。可是异步业务和注解的切面不在同一线程,这样执行完异步方法后就没法进入切面类记录操作日志了。这可该咋办,求大神指教!!!
这个异步业务是对excel表的导入,如下,发送请求到importData方法,然后调用syncHandleData方法,可是方法执行完后,importData方法上面的日志可记录,异步方法上的不可以。


@OperateLogNote(module = "采集", name = "导入数据", type = OperateLogType.IMPORT,
content="开始导入报告数据,批次logVar",code="collect")
@RequestMapping(value = "/import/{batchId}",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> importData(@RequestParam("file") MultipartFile file,@PathVariable(value = "batchId") Long batchId){
Map<String,Object> resultMap = CommonUtils.getSucResultMap();
try {//里面调用包含异步方法
resultMap = dataCollectionService.importExeclData(file,batchId);
}catch (Exception e){
logger.error("导入错误:"+e);
resultMap = CommonUtils.getWarnResultMap("导入数据失败:"+e.getMessage());
}
return resultMap;
}

@OperateLogNote(module = "采集", name = "导入数据", type = OperateLogType.IMPORT,
content="成功导入了报告数据,批次logVar",code="collect")
@Async("asyncExecutor")
public void syncHandleData(String filePath, Long batchId,ShiroUser shiroUser) {
logger.info("开始异步处理文件【"+filePath+"】");
Long startTime = System.currentTimeMillis();
}
...全文
935 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧