Spring的传播属性是用来控制事务的传播行为的,包括以下几种属性:
REQUIRED:表示当前方法必须在一个事务中运行,如果当前存在事务,则加入该事务;如果不存在事务,则创建一个新的事务。
SUPPORTS:表示当前方法支持在一个事务中运行,如果当前存在事务,则加入该事务;如果不存在事务,则以非事务的方式运行。
MANDATORY:表示当前方法必须在一个事务中运行,如果当前存在事务,则加入该事务;如果不存在事务,则抛出异常。
REQUIRES_NEW:表示当前方法必须在一个新的事务中运行,如果当前存在事务,则将当前事务挂起。
NOT_SUPPORTED:表示当前方法不应该在事务中运行,如果当前存在事务,则将当前事务挂起。
NEVER:表示当前方法不应该在事务中运行,如果当前存在事务,则抛出异常。
NESTED:表示当前方法必须在一个嵌套的事务中运行,如果当前存在事务,则在嵌套事务内执行;如果不存在事务,则创建一个新的事务。
这些传播属性可以通过在@Transactional注解中指定来控制方法的事务行为。