# 《本地任务消息组件》- 第6节:切面拦截任务操作

作者:小傅哥
博客:https://bugstack.cn (opens new window)
课程:https://t.zsxq.com/Pfekb (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

# 一、本章诉求

因为我们做的是一个通用组件项目,对于它的使用应该要提供出更简单轻量的方式,让使用方可以轻量化的接入。所以对于 handleService.acceptTaskMessage(taskMessageEntityCommand) 编码的方式,可以提供更为优化的处理手段。

这里我们选择增加一个本地任务消息的自定义注解,对于配置了此注解的方法进行拦截,并获取入参信息的 taskMessageEntityCommand 对象。之后,开始进行同一个事务或开启新的事物的方式,完成数据的插入操作,并进行 Spring Event 消息推送。这样可以让用户的使用更加简洁。

# 二、功能流程

如图,通过自定义注解加切面拦截方式,完成本地消息的受理。

  • 首先,我们要添加一个自定义注解,并在 config 配置下编写切面的逻辑,这个逻辑主要是获取出配置自定义注解的方法的入参,从里面拿到任务消息对象。
  • 之后,要判断当前当前是否有事务操作,如果没有则开启一个新的事物,如果有则使用同一个事务,完成数据库表数据的插入。之后在推送 SpringEvent 事件消息。和面的流程就一致了。