spring 中的懒加载与事务 -- 排坑记录

案例描述

本文主要描述了开发中常见的几个与 spring 懒加载和事务相关的案例,描述常见的使用场景,以及如何规避他们,给出具体的代码。

  1. 在新的线程中,访问某个持久化对象的懒加载属性。
  2. 在 quartz 定时任务中,访问某个持久化对象的懒加载属性。
  3. 在 dubbo,motan 一类 rpc 框架中,远程调用时服务端 session 关闭的问题。

上面三个案例,其实核心都是一个问题,就是牵扯到 spring 对事务的管理,而懒加载这个技术,只是比较容易体现出事务出错的一个实践,主要用它来引发问题,进而对问题进行思考。


Transactional 注解使用注意点

@Transactional 可以说是 spring 中最常用的注解之一了,通常情况下我们在需要对一个 service 方法添加事务时,加上这个注解,如果发生 unchecked exception,就会发生 rollback,最典型的例子如下。


Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×