`
高级java工程师
  • 浏览: 397454 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

声明事务2种方式

阅读更多
spring声明式事务管理的两种方式


传统的:

1 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

2         <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />

3         <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:dev" />

4         <property name="username" value="kaktos" />

5         <property name="password" value="kaktos" />

6     </bean>

7

8     <bean id="txManager"

9         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

10         <property name="dataSource" ref="dataSource" />

11     </bean>

12

13     <bean id="businessBean"

14         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

15         <property name="transactionManager" ref="txManager" />

16         <property name="target" ref="businessBeanTarget" />

17         <property name="transactionAttributes">

18             <props>               

19                 <prop key="*">PROPAGATION_REQUIRED</prop>

20             </props>

21         </property>

22     </bean>

23    

24     <bean id="businessBeanTarget" class="sample.spring.trans.BusinessBean">

25         <property name="dataSource" ref="dataSource" />

26     </bean>

这样做的弊端就是不得不为每个需要事务的bean做一次声明,如果所有的bean都基本上有一致的配置,这样就太繁琐啦。

下面是第二种方式:

1 <beans>

2     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

3         <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />

4         <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:dev" />

5         <property name="username" value="kaktos" />

6         <property name="password" value="kaktos" />

7     </bean>

8

9     <bean id="txManager"

10         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

11         <property name="dataSource" ref="dataSource" />

12     </bean>

13

14     <bean id="matchAllWithPropReq"

15         class="org.springframework.transaction.interceptor.MatchAlwaysTransactionAttributeSource">

16         <property name="transactionAttribute" value="PROPAGATION_REQUIRED" />

17     </bean>

18    

19     <bean id="matchAllTxInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">

20         <property name="transactionManager" ref="txManager" />

21         <property name="transactionAttributeSource" ref="matchAllWithPropReq" />

22     </bean>

23

24     <bean id="autoProxyCreator"

25         class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

26         <property name="interceptorNames">

27             <list>

28                 <idref local="matchAllTxInterceptor" />

29             </list>

30         </property>

31         <property name="beanNames">

32             <list>

33                 <idref local="businessBean" />

34             </list>

35         </property>

36     </bean>

37    

38     <!--  my beans  -->

39     <bean id="businessBean" class="sample.spring.trans.BusinessBean">

40         <property name="dataSource" ref="dataSource" />

41     </bean>

42 </beans>

分享到:
评论

相关推荐

    基于java的企业级应用开发:声明式事务管理.ppt

    5.2 声明式事务管理 Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式。接下来的两个小节中,将对这两种声明式事务管理方式进行详细讲解。 基于XML方式的声明式...

    springboot2+两种方式:(读写分离、动态DataSource、事务懒处理)+sharding-jdbc.zip

    (4)、懒事务处理方式,service层使用@Transactional注解的方法或者类只能走默认库(写库) (5)、AOP根据Dao层的方法名来判断读写库的切换,超出判断规则的只能走默认库(写库) 2、sharding-jdbc (1)、实现...

    Spring事务优缺点及使用详解.docx

    事务简介 二、程序举例环境搭建 o1. 创建数据表 o2. maven依赖pom.xml o3....o4....o5....o6....o7....o8....o9....o10....o1. 声明事务管理器 o2. 开启注解驱动 o3. 完整Spring配置文件 o4. 业务层 public 方法加入事务属性 o5. 测试

    Spring JDBC与事务管理

    4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二.实验内容 (1)使用Spring JDBC实现书店的购书过程,即有如下一个BookShopDao接口,编写BookShopDaoImp类实现该接口中的...

    JavaEE的Spring JDBC与事务管理 实验

    4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二、 实验内容 1、在MySQL中创建以下三张表,其中account为账户表,book为书籍信息表,book_stock为书籍库存表。 (1)使用...

    Spring JDBC与事务管理源代码

    1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口;...4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。

    J2EE实验6.docx

    1.实现超市订单系统中供应商表的添加操作 2.配置事务管理器组件 3.在Spring配置文件中使用tx和aop命名空间下的标签配置声明式事务 4.修改上例,使用注解的方式配置声明式事务

    ssm整合以及相关练习文档

    2.声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和 XML 配置来管理事务。 Spring 事务配置示例(使用 tx 标签配置的拦截器) --------------------- 作者:我要取一个响亮的昵称 来源:...

    Java EE轻量级解决方案S2SH

    在Spring部分主要讲解IoC的原理,Spring对Bean的管理机制,Spring AOP编程,以及声明事务的配置和管理。 本书重点突出、偏重应用,结合理论篇的实例和实践篇对贯穿案例进行讲解、剖析及实现。实践篇贯穿案例在线考试...

    spring4示例代码

    spring-1 演示了使用setter方式及构造器方式创建bean,util:list标签创建集合,p标签简化配置 和依赖注入, 以及bean的autowire和继承与依赖,以及bean的作用域...spring-5 演示了声明式事务及使用xml配置文件处理事务

    SSM框架教程Spring+SpringMVC+MyBatis全覆盖_Java热门框架视频教程

    15、Spring基于XML方式的声明式事务控制 16、Spring基于注解方式声明式事务控制 SpringMVC部分: 1、SpringMVC简介 2、SpringMVC组件解析 3、SpringMVC数据响应 4、SpringMVC数据请求 5、SpringMVC文件上传 6、...

    实验3 基于Spring的数据库编程

    1、了解JDBC模块作用及事务管理两种方式(XML方式与注解方式) 2、熟悉JDBC配置及事务管理的3个核心接口 3、掌握JdbcTemplate类中的常用方法及声明式事务的使用 二:实验内容 基于Spring中的JdbcTemplate及声明式...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     20.2 声明事务边界的方式  20.3 在mysql.exe程序中声明事务  20.4 Java应用通过JDBC API声明JDBC事务  20.5 Java应用通过Hibernate API声明JDBC事务  20.5.1 处理异常  20.5.2 Session与事务的关系  20.5.3 ...

    尚硅谷佟刚Spring4代码及PPT.rar

    JdbcDaoSupport、使用 NamedParameterJdbcTemplate、Spring 的声明式事务、事务的属性(传播行为、隔离级别、回滚属性、只读属性、过期时间)、使用 XML 文件的方式配置事务、整合 Hibernate、整合 Struts2 等。

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     20.2 声明事务边界的方式  20.3 在mysql.exe程序中声明事务  20.4 Java应用通过JDBC API声明JDBC事务  20.5 Java应用通过Hibernate API声明JDBC事务  20.5.1 处理异常  20.5.2 Session与事务的关系  20.5.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     20.2 声明事务边界的方式  20.3 在mysql.exe程序中声明事务  20.4 Java应用通过JDBC API声明JDBC事务  20.5 Java应用通过Hibernate API声明JDBC事务  20.5.1 处理异常  20.5.2 Session与事务的关系  20.5.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     20.2 声明事务边界的方式  20.3 在mysql.exe程序中声明事务  20.4 Java应用通过JDBC API声明JDBC事务  20.5 Java应用通过Hibernate API声明JDBC事务  20.5.1 处理异常  20.5.2 Session与事务的关系  20.5.3 ...

    Java Web程序设计教程

    11.4.2依赖注入的3种方式 236 11.5beanfactory与applicationcontext 238 11.5.1认识beanfactory 238 11.5.2使用applicationcontext 238 11.6项目实战——spring问候程序 239 本章小结 241 课后练习 241 第12...

    tmsh2JSON:将F5 Big-IP配置导出到JSON Blob中,适合以声明方式提交到F5 AS3接口

    将F5 Big-IP配置导出到适合以声明方式提交到F5 AS3接口的JSON Blob tmsh不仅仅是一个CLI。 它是具有事务处理功能的可编程外壳。 非常适合自动化。 tmsh脚本专门研究Big-IP配置处理和操作。 它基于TCL,但带有F5预...

    spring.doc

    DataSource注入的三种方式: 108 5.1.8声明式事务管理 116 5.1.8.1Spring的事务管理器 117 5.1.8.2Spring事务的传播属性 117 5.1.8.3Spring事务的隔离级别 117 拓展: 118 5.1.8.4以XML配置的 形式 119 拓展: 120 ...

Global site tag (gtag.js) - Google Analytics