spring @Transactional 注解和redis/kafka的消息发布

发布于 2022-09-05 09:59:35 字数 483 浏览 27 评论 0

我看一个web项目里

用@Transactional(readOnly = true)注解了一个类
类的方法是进行redis/kafka的消息发布

这个类里面就一个方法,方法的主要代码段如下:

for (String jsonStr : strArray) {
            redisTemplate.convertAndSend("topic_id", jsonStr );
            KafkaProducerUtil.sendMessage("topic_id", jsonStr );
        }

我的疑惑是
1 这个readOnly = true 对redis/kafka消息的发布有何作用?
2 这个方法里面没有抛异常的,只是sendMessage()的定义(定义在另一个类中)里有抛异常,但是异常在那里捕捉了,这样这个方法就没有抛异常的可能,那么加@Transactional 注解有何用?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

内心旳酸楚 2022-09-12 09:59:35

@Transactional(readOnly = true)是指这个方法使用只读事务,这个事务针对的应该是数据库层面,不知道方法里有没有用到数据库相关操作,没有的话我猜测是因为方法名与事务统一配置的方法名可能会有重合(就是会使用到事务),所以这样设置为只读事务,提高效率

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文