[转]Spring事宜配置在DAO和Service层
[转]Spring事务配置在DAO和Service层?!—hibernateTransactionManager--bean idtransactionManager/
[转]Spring事务配置在DAO和Service层
?![[转]Spring事宜配置在DAO和Service层](//img.reader8.net/uploadfile/jiaocheng/20140188/2825/2014012823252828407.png)
![[转]Spring事宜配置在DAO和Service层](//img.reader8.net/uploadfile/jiaocheng/20140188/2825/2014012823252828408.gif)
<!—hibernateTransactionManager--><bean id="transactionManager" /> </property></bean><!—DAO层接口实现--><bean id="companyDAOTarget" /> </property></bean><!—spring对DAO层的事务代理--><bean id="companyDAOProxy" /> </property> <property name="target"> <ref local="companyDAOTarget" /> </property> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="find*"> PROPAGATION_REQUIRED,readOnly </prop> </props> </property></bean><!—业务层接口实现,把DAO注入到Service里面--><bean name="companyManageTarget" /> </property></bean><!—spring对Service层的代理--><bean id="companyManageProxy" /> </property></bean><!—配置struts访问,把service层注入到action里面--><bean name="/company" singleton="false"> <property name="companyManage"> <ref local="companyManageProxy" /> </property></bean>
二.把事务放置在了Service层:
?![[转]Spring事宜配置在DAO和Service层](//img.reader8.net/uploadfile/jiaocheng/20140188/2825/2014012823252828407.png)
![[转]Spring事宜配置在DAO和Service层](//img.reader8.net/uploadfile/jiaocheng/20140188/2825/2014012823252828408.gif)
<!—jtaTransactionManager--><bean id="jtaTransactionManager" /><!—DAO层接口实现--><bean id="companyDAOTarget" /> </property></bean><!—spring对DAO层的代理--><bean id="companyDAOProxy" /> </property></bean><!—业务层接口实现,把DAO注入到Service里面--><bean name="companyManageTarget" /> </property></bean><!—spring代理业务层的事务管理--><bean id="companyManageProxy" /> </property> <property name="transactionAttributes"> <props> <prop key="set*">PROPAGATION_REQUIRED</prop> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> <property name="target"> <ref bean="companyManageTarget" /> </property></bean><!—配置struts访问,把service层注入到action里面--><bean name="/company" singleton="false"> <property name="companyManage"> <ref local="companyManageProxy" /> </property></bean>
例如:在service层的接口实现CompanyManageImpl里面有个setData方法:按顺序执行对数据库的数据查询,数据删除,数据插入数据库,如果哪一步出异常(运行时异常),以上三个操作都将事务回滚。