- 浏览: 397454 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (347)
- java基础 (58)
- ajax (10)
- s2sh (10)
- 版本控制 (4)
- 数据库 (34)
- 服务器 (4)
- 开发工具 (8)
- javascript (15)
- soockte (5)
- ext (2)
- 环境搭建 (7)
- struts2 (9)
- 找工作中的面试技巧 (2)
- 承接网站零活 (0)
- JNI+JONSE+OGNL (8)
- 性能优化 (4)
- Android开发 (5)
- xul (8)
- jquery (2)
- 线程 (3)
- jsp+jdbc (7)
- servlet (2)
- java对xml操作 (1)
- IO流的操作 (10)
- 项目开发前配置 (1)
- css (0)
- 上传、下载 (2)
- 知识探讨 (2)
- html (2)
- HQL (0)
- 工作技巧 (1)
- IT (1)
- Hibernate杂谈 (10)
- Spring杂谈 (35)
- DWR (5)
- JUnit测试 (3)
- EasyMock测试web (1)
- ibatis (6)
- maysql (5)
- C++ (0)
- 正则表达式(解剖) (1)
- 密码安全 (2)
- 上传 (1)
- socket (1)
- jni(java与c++结合) (1)
- jdk版本问题 (0)
- tomcat版本问题 (5)
- linux基本命令(初学) (7)
- linux项目发布 (1)
- 3年的经验总结 (1)
- 加解密 (2)
- 高级java阶段 (2)
- java内存分区 (1)
- 浏览器 (1)
- 职业规划 (1)
- 管理 (5)
- java语音 (1)
- SSH (1)
- jsp (3)
- extjs (1)
- uml (2)
- 加密 (1)
- web (2)
- Ant (1)
- 自述 (1)
- Linux (1)
- ssh源码解剖 (1)
- 代码优化 (1)
- 设计模式 (0)
- xml (2)
- JOSN (1)
- scala (0)
- hadoop (0)
- spark (0)
- hana (1)
- shior (1)
- java Word (6)
- java PDF (4)
- java Excel (0)
最新评论
-
高级java工程师:
ztao2333 写道谢谢。收藏下这个总结。呵呵
温习jdk和tomcat -
ztao2333:
大写的,不是大学的
温习jdk和tomcat -
ztao2333:
谢谢。收藏下这个总结。
温习jdk和tomcat -
the_small_base_:
你好,可以提供调用方法吗?需要的Jar,能发下源码吗?谢谢
java实现语音 -
高级java工程师:
文思涌动 写道楼主新年好。可否再传一遍给我,我没有收到, 不清 ...
s2sh整合
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>
传统的:
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>
发表评论
-
System.gc()与Runtime.getRuntime().gc()区别
2019-07-23 14:34 736首先,我们需要明确一点的是,两个gc都会强制触发垃圾收集,它们 ... -
sql大全
2013-07-12 19:02 1007经典SQL语句大全 一、基础 1、说明: ... -
ATAL ERROR in native method: JDWP No transports initialized, jvmtiError=JVMTI_ER
2013-07-04 15:38 3975windos系统bug 因为我的机器比较内存比较少512M, ... -
java读取文本文件数据
2013-01-24 23:41 1064import java.io.*; public cla ... -
java复习(set 、list、map)
2013-01-24 23:27 1107复习 public static void main( ... -
java代码实现excel输到导入oracle
2012-07-31 13:28 14421.首先需要两个jar包jxl.jar,ojdbc.jar(注 ... -
使用doc命令将java工程生成.jar文件和war文件
2011-12-30 09:56 1287假定有一个Web应用:C:\myHome myHom ... -
堆栈 新的 认识
2011-10-31 14:24 1194A a = new A(); 在堆开辟空间,并把值存在堆 ... -
java实现捕捉屏幕
2011-10-15 16:17 1636要使用的是java.util.Robot类来捕获屏幕,可以实现 ... -
抽象类、抽象方法、接口
2011-10-13 10:55 1094抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象 ... -
java死锁
2011-10-10 22:05 833package cn.com.io.threadDem ... -
for和foreach使用?
2011-08-29 15:03 677在JDK5.0中加入了一个新的特性,那就是FOR-EACH循环 ... -
java开发群
2011-08-25 20:08 41欢迎java群1670293,希望有工作经验热情的加入---- ... -
JAVA中,如何判断一个字符串中包含的字符在另一个字符前面?
2011-06-30 13:34 3533[color=indigo]用它们在这个字符串中的位置来判断。 ... -
java实现判断A中是否包含B
2011-06-30 13:33 1242代码 package day6; public cla ... -
导入word到Fckeditor(java实现)
2011-06-24 13:58 1158最近项目可以说到达了一个里程碑,借这篇文章把前面的技术进行总结 ... -
使用3中不同的方式 从集合中取数据
2011-05-25 10:47 936代码 package iter; import jav ... -
Java反射
2011-05-05 08:49 820[color=blue]Java Reflection (JA ... -
Java反射机制
2011-05-05 08:48 715JAVA反射机制 JAVA ... -
get 和post
2011-05-05 08:39 812表单form的提交有两种方式,一种是get的方法,一种是pos ...
相关推荐
5.2 声明式事务管理 Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式。接下来的两个小节中,将对这两种声明式事务管理方式进行详细讲解。 基于XML方式的声明式...
(4)、懒事务处理方式,service层使用@Transactional注解的方法或者类只能走默认库(写库) (5)、AOP根据Dao层的方法名来判断读写库的切换,超出判断规则的只能走默认库(写库) 2、sharding-jdbc (1)、实现...
事务简介 二、程序举例环境搭建 o1. 创建数据表 o2. maven依赖pom.xml o3....o4....o5....o6....o7....o8....o9....o10....o1. 声明事务管理器 o2. 开启注解驱动 o3. 完整Spring配置文件 o4. 业务层 public 方法加入事务属性 o5. 测试
4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二.实验内容 (1)使用Spring JDBC实现书店的购书过程,即有如下一个BookShopDao接口,编写BookShopDaoImp类实现该接口中的...
4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二、 实验内容 1、在MySQL中创建以下三张表,其中account为账户表,book为书籍信息表,book_stock为书籍库存表。 (1)使用...
1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口;...4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。
1.实现超市订单系统中供应商表的添加操作 2.配置事务管理器组件 3.在Spring配置文件中使用tx和aop命名空间下的标签配置声明式事务 4.修改上例,使用注解的方式配置声明式事务
2.声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和 XML 配置来管理事务。 Spring 事务配置示例(使用 tx 标签配置的拦截器) --------------------- 作者:我要取一个响亮的昵称 来源:...
在Spring部分主要讲解IoC的原理,Spring对Bean的管理机制,Spring AOP编程,以及声明事务的配置和管理。 本书重点突出、偏重应用,结合理论篇的实例和实践篇对贯穿案例进行讲解、剖析及实现。实践篇贯穿案例在线考试...
spring-1 演示了使用setter方式及构造器方式创建bean,util:list标签创建集合,p标签简化配置 和依赖注入, 以及bean的autowire和继承与依赖,以及bean的作用域...spring-5 演示了声明式事务及使用xml配置文件处理事务
15、Spring基于XML方式的声明式事务控制 16、Spring基于注解方式声明式事务控制 SpringMVC部分: 1、SpringMVC简介 2、SpringMVC组件解析 3、SpringMVC数据响应 4、SpringMVC数据请求 5、SpringMVC文件上传 6、...
1、了解JDBC模块作用及事务管理两种方式(XML方式与注解方式) 2、熟悉JDBC配置及事务管理的3个核心接口 3、掌握JdbcTemplate类中的常用方法及声明式事务的使用 二:实验内容 基于Spring中的JdbcTemplate及声明式...
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 ...
JdbcDaoSupport、使用 NamedParameterJdbcTemplate、Spring 的声明式事务、事务的属性(传播行为、隔离级别、回滚属性、只读属性、过期时间)、使用 XML 文件的方式配置事务、整合 Hibernate、整合 Struts2 等。
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 ...
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 ...
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 ...
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...
将F5 Big-IP配置导出到适合以声明方式提交到F5 AS3接口的JSON Blob tmsh不仅仅是一个CLI。 它是具有事务处理功能的可编程外壳。 非常适合自动化。 tmsh脚本专门研究Big-IP配置处理和操作。 它基于TCL,但带有F5预...
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 ...