java代码: |
<bean id="proxyService" class="org. springframework. transaction. interceptor. TransactionProxyFactoryBean"> <property name="transactionManager"><ref local="myTransactionManager"/></property> <property name="target"> <ref local="itemService"/> </property> <property name="transactionAttributes"> <props> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="add*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean> <bean id="itemService" class="com. xxx. services. IServiceImpl"> <property name="itemMasterDAO"><ref local="itemMasterDAO"/></property> </bean> |
系统中有多个service,但我们的事务策略大部分都是一样的,难道非要每个service都要写一个这样的代理配置么?多个service用同样的事务策略有办法简化这样的配置么?[/code]
xml代码: |
<!-- Transactional proxy for the services --> <bean id= "baseTxProxy" lazy-init= "true" class= "org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name= "transactionManager"><ref bean= "transactionManager"/></property> <property name= "transactionAttributes"> <props> <prop key= "*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id= "itemService" parent= "baseTxProxy"> <property name= "target"> <bean class= "ItemServiceImpl" autowire= "byName"/> </property> </bean> |
Readonly 写道: | ||
|
这样的话baseTxProxy也可能被实例化。是不是加上abstract="true"属性,把baseTxProxy只是当作一个模板比较好?因为只需要itemservice这个bean。
java代码: |
<bean id="TransactionProxyFactoryBean" lazy-init=" true" class="org. springframework. transaction. interceptor. TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key=" do*">PROPAGATION_REQUIRED</prop> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean> <bean id="ForumService" parent="TransactionProxyFactoryBean"> <property name="target"> <bean class="com. bbs. service. imp. ForumServiceImp"> <property name="forumDAO"> <ref local="ForumDAO" /> </property> </bean> </property> </bean> |
这样也是可以的!