对Key属性决定代理将为方法提供什么样的事务行为。这个属性的最重要部分就是事务传播行为。下面是一些可选的属性值
- PROPAGATION_REQUIRED --支持当前的事务,如果不存在就创建一个新的。这是最常用的选择。
- PROPAGATION_SUPPORTS --支持当前的事务,如果不存在就不使用事务。
- PROPAGATION_MANDATORY --支持当前的事务,如果不存在就抛出异常。
- PROPAGATION_REQUIRES_NEW --创建一个新的事务,并暂停当前的事务(如果存在)。
- PROPAGATION_NOT_SUPPORTED --不使用事务,并暂停当前的事务(如果存在)。
- PROPAGATION_NEVER --不使用事务,如果当前存在事务就抛出异常。
- PROPAGATION_NESTED --如果当前存在事务就作为嵌入事务执行,否则与PROPAGATION_REQUIRED类似