TransactionProxyFactoryBean可以有多个目标

时间:2014-03-21 23:07:44

标签: spring

TransactionProxyFactoryBean可以有多个目标,例如,当前目标道具可以跨越一个DAO,如:

<bean id="client" class="org.springframework.transaction.interceptor .TransactionProxyFactoryBean">
<property name="transactionManager"><ref local="transactionManager"/></property>
<property name="target"><ref local="ClientDAO"/></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

我可以将另一个DAO添加到同一个proxyfactory bean的target属性中。

或者我必须为每个DAO都有一个单独的transactionproxyBean。

1 个答案:

答案 0 :(得分:1)

这是不可能的。但是,如果要使用相同的配置代理几个DAO,可以将bean配置为抽象而不设置目标,将其命名为myTransactionProxy,然后为每个目标使用

<bean id="client" parent="myTransactionProxy">
  <property name="target" ref="ClientDAO"/>
</bean>
...

无论如何,使用TransactionProxyFactoryBean是管理事务的相当古老的方法,尝试查看tx命名空间以声明方式定义事务(http://www.springframework.org/schema/tx)。