spring @Transactional 注解和redis/kafka的消息发布
我看一个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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
@Transactional(readOnly = true)是指这个方法使用只读事务,这个事务针对的应该是数据库层面,不知道方法里有没有用到数据库相关操作,没有的话我猜测是因为方法名与事务统一配置的方法名可能会有重合(就是会使用到事务),所以这样设置为只读事务,提高效率