文章如下:
http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/
http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts2/
http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts3/
因为数据库连接绑定到了线程,所以PROPAGATION_REQUIRED事务传播则很好理解。
ThreadLocal有数据库连接,说明已经存在事务,沿用这个数据库连接;如果ThreadLocal没有数据库连接,则说明当前没有事务,需要从连接池绑定一个新的连接,开始一个新的事务。
事务传播行为中的"以非事务方式执行操作",我感觉应该是设置为自动提交。
文章中说到的一个重点是,一定要在finally中释放资源,如数据库连接等,否则一旦出现异常,数据库连接则因为不能关闭而泄露。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1075749/
,如需转载,请注明出处,否则将追究法律责任。