知识大全 Spring配置事务在DAO层和业务逻辑层

Posted

篇首语:正确的道路是这样:吸取你的前辈所做的一切,然后再往前走。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring配置事务在DAO层和业务逻辑层相关的知识,希望对你有一定的参考价值。

Spring配置事务在DAO层和业务逻辑层  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

Spring通过AOP实现声明式事务管理 通常通过TransactionProxyFactoryBean设置Spring事务代理 我们需要一个目标对象包装在事务代理中 这个目标对象一般是一个普通Java对象的bean 当我们定义TransactionProxyFactoryBean时 必须提供一个相关的 PlatformTransactionManager的引用和事务属性 事务属性含有上面描述的事务定义     PlatformTransactionManager     HibernateTransactionManager需要一个SessionFactory的引用    JtaTransactionManager    一.把事务放置在了DAO层      <!—hibernateTransactionManager ><bean id= transactionManager     class= springframework orm hibernate HibernateTransactionManager >    <property name= sessionFactory >        <ref local= sessionFactory />    </property></bean><!—DAO层接口实现 ><bean id= panyDAOTarget     class= vstsoft querypany dao impl CompanyDAOImpl >    <property name= sessionFactory >        <ref local= sessionFactory />    </property></bean><!—spring对DAO层的事务代理 ><bean id= panyDAOProxy     class= springframework transaction interceptor TransactionProxyFactoryBean >    <property name= transactionManager >        <ref bean= transactionManager />    </property>    <property name= target >        <ref local= panyDAOTarget />    </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= panyManageTarget     class= vstsoft querypany service impl CompanyManageTarget >    <property name= panyDAO >        <ref bean= panyDAOProxy />    </property></bean><!—spring对Service层的代理 ><bean id= panyManageProxy     class= springframework aop framework ProxyFactoryBean >    <property name= proxyInterfaces >        <value> vstsoft querypany service CompanyManage</value>    </property>    <property name= target >        <ref bean= panyManageTarget />    </property></bean><!—配置struts访问 把service层注入到action里面 ><bean name= /pany     class= vstsoft querypany web action CompanyAction singleton= false >    <property name= panyManage >        <ref local= panyManageProxy />    </property></bean>二.把事务放置在了Service层 <!—jtaTransactionManager ><bean id= jtaTransactionManager     class= springframework transaction jta JtaTransactionManager /><!—DAO层接口实现 ><bean id= panyDAOTarget     class= vstsoft querypany dao impl CompanyDAOImpl >    <property name= sessionFactory >        <ref local= sessionFactory />    </property></bean><!—spring对DAO层的代理 ><bean id= panyDAOProxy     class= springframework aop framework ProxyFactoryBean >    <property name= proxyInterfaces >        <value> vstsoft querypany dao CompanyDAO</value>    </property>    <property name= target >        <ref bean= panyDAOTarget />    </property></bean><!—业务层接口实现 把DAO注入到Service里面 ><bean name= panyManageTarget     class= vstsoft querypany service impl CompanyManageTarget >    <property name= panyDAO >        <ref bean= panyDAOProxy />    </property></bean><!—spring代理业务层的事务管理 ><bean id= panyManageProxy     class= springframework transaction interceptor TransactionProxyFactoryBean >    <property name= transactionManager >        <ref local= jtaTransactionManager />    </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= panyManageTarget />    </property></bean><!—配置struts访问 把service层注入到action里面 ><bean name= /pany     class= vstsoft querypany web action CompanyAction singleton= false >    <property name= panyManage >        <ref local= panyManageProxy />    </property></bean>  在service层的接口实现CompanyManageImpl里面有个setData方法 按顺序执行数据查询 数据删除 数据插入数据库行为 如果哪一步出异常(运行时异常) 事务回滚 只有所有行为都没成功 事务提交 cha138/Article/program/Java/ky/201311/28057

相关参考

知识大全 在Spring中配置Hibernate的事务

在Spring中配置Hibernate的事务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文

知识大全 spring事务配置

  <!构建HibernateTransactionManager用于获得session管理事务>  <beanid=transactionManagerclass=springfr

知识大全 对Spring事务配置方式的深入研究

对Spring事务配置方式的深入研究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前段时间对S

知识大全 Spring事务配置的五种方式

Spring事务配置的五种方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前段时间对Spri

知识大全 Spring中的四种声明式事务的配置

Spring中的四种声明式事务的配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Spring

知识大全 spring事物配置示例

  以前项目中经常用spring事务处理还没有亲自配置过惭愧现在马上上路.  首先在spring容器中配置transactionManager这个有好多实现这里以HibernateTransactio

知识大全 Spring DAO之JDBC

SpringDAO之JDBC  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SpringDAO之

知识大全 ado.net快速上手实践篇(二)

五dal层数据访问实现   在这里我们使用前一篇文章里实现的数据持久化层和伪SqlMapper对象实现数据操作下面我们来看看Dal下核心的Dao如何实现 &nb

知识大全 影响性能的测试报告(数据库版)

  引言    前提项目组里无用到SPRING进行事务的管理项目里以功能划分到每个人手里    形成了BODAOACTIONVIEW都是单人负责在DAO中每个动作都以    封闭式的形式存在    问

知识大全 Spring声明式事务管理源码解读之事务开始

Spring声明式事务管理源码解读之事务开始  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在s