![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小白学Java
替罪的羊
笔记而已
展开
-
Spring 事务事件控制 解决业务异步操作解耦 TransactionSynchronizationManager Transaction
在业务中,经常需要在执行数据库操作后(事务提交完成),发送消息或事件来异步调用其他组件执行相应的业务操作。用户注册成功后,发送激活码或激活邮件,如果用户保存后就执行异步操作发送激活码或激活邮件,但是前面用户保存后发生异常,数据库进行回滚,用户实际没有注册成功,但用户收到激活码或激活邮件。此时,我们就迫切要求数据库事务完成后再执行异步操作。原创 2023-03-23 14:07:39 · 440 阅读 · 1 评论 -
主线程serviceA调用子线程的serviceB,如果子线程erviceB抛出异常,怎么保证A,B的原子性?
业务如图所示:异步serviceB抛出异常,serviceA如何捕获?FutureTask除了用线程池的 submit 方法会返回一个 future 对象之外,同样还可以用 FutureTask 来获取 Future 类和任务的结果。可用future.get();获取任务的结果。serviceA捕获后,如何回滚?在serviceA上加上注解Transactional,抛出异常时回滚。原创 2023-01-12 11:03:14 · 188 阅读 · 0 评论 -
allowMultiQueries=true的作用
不加allowMultiQueries=true之前,会报错。可以执行批处理,同时发出多个SQL语句。后携带分号,实现多语句执行。原创 2023-01-04 14:14:32 · 14564 阅读 · 0 评论 -
阻塞队列-BlockingQueue,使用poll停止阻塞
检索并删除此队列的头,等待指定的等待时间(如有必要)使元素变为可用。take 会一直阻塞队列,用poll代替take。原创 2022-12-27 13:12:06 · 829 阅读 · 0 评论 -
SpringBoot用注解实现redis缓存
每次查询都会查询数据库。缓存中有就不查数据库。原创 2022-09-14 15:37:34 · 487 阅读 · 0 评论