欢迎来到天天文库
浏览记录
ID:10004693
大小:109.50 KB
页数:12页
时间:2018-05-20
《spring对持久层封装》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、事务管理对于J2EE应用程序而言,事务的处理一般有两种模式:1.依赖特定事务资源的事务处理这是应用开发中最常见的模式,即通过特定资源提供的事务机制进行事务管理。如通过JDBC、JTA的rollback、commit方法;HibernateTransaction的rollback、commit方法等。这种方法大家已经相当熟悉。2.依赖容器的参数化事务管理通过容器提供的集约式参数化事务机制,实现事务的外部管理,如EJB中的事务管理模式。容器管理的参数化事务为程序开发提供了相当的灵活性,同时因为将事务委托给容器进行管理,应用逻辑中无需再编写事务代码,大大节省了代码量(特别是针对需要同时操作
2、多个事务资源的应用),从而提高了生产率。Spring事务管理能给我们带来什么?对于传统的基于特定事务资源的事务处理而言(如基于JDBC的数据库访问),Spring并不会对其产生什么影响,我们照样可以成功编写并运行这样的代码。同时,Spring还提供了一些辅助类可供我们选择使用,这些辅助类简化了传统的数据库操作流程,在一定程度上节省了工作量,提高了编码效率。对于依赖容器的参数化事务管理而言,Spring则表现出了极大的价值。Spring本身也是一个容器,只是相对EJB容器而言,Spring显得更为轻便小巧。我们无需付出其他方面的代价,即可通过Spring实现基于容器的事务管理(本质上来
3、讲,Spring的事务管理是基于动态AOP)。下面这段xml配置片断展示了Spring中的事务设定方式:com.mysql.jdbc.Driverjdbc:mysql://localhost/test4、perty>usermypass5、6、>PROPAGATION_REQUIREDPROPAGATION_REQUIRED,readOnly配置中包含了dataSource,transactionManager等资源定义。这些资源都为一个名为userDAOProx
4、perty>usermypass
5、6、>PROPAGATION_REQUIREDPROPAGATION_REQUIRED,readOnly
6、>PROPAGATION_REQUIREDPROPAGATION_REQUIRED,readOnly
7、y的TransactionProxyFactoryBean服务,而userDAOProxy则对包含实际数据逻辑的userDAO进行了事务性封装。可以看到,在userDAOProxy的"transactionAttributes"属性中,我们定义了针对userDAO的事务策略,即将所有名称以insert开始的方法(如UserDAO.insertUser方法)纳入事务管理范围。如果此方法中抛出异常,则Spring将当前事务回滚,如果方法正常结束,则提交事务。而
此文档下载收益归作者所有