Sping的声明式事务处理:
Spring的事务处理有两种:一种是通过程序来控制,另一种是通过配置来控制。
其各有自己的优点,通过程序控制的灵活性好,通过配置控制的通用性强!
不过用配置的方式管理起来很麻烦
J2EE的开发,特别是牵涉到ssh的开发,里面有大量XML的参数配置,配置起来真的很麻烦…(等有时间了,好好整理一下)
关于事务处理的一个特点就是,要么全部成功,要么全部失败!
由于现实中存在这样的业务逻辑,所以就必需有事务处理。经典的案例就是银行的转账问题
A→B 如果B账户不存在,如果没有事务处理,则A账户也会执行减钱的动作。有了事务处理就会解决这个问题。
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
3
4 <beans>
5
6
7 <bean id="dataSource"
8 class="org.apache.commons.dbcp.BasicDataSource">
9 <property name="driverClassName">
10 <value>com.mysql.jdbc.Driver</value>
11 </property>
12 <property name="url">
13 <value>jdbc:mysql://localhost:3306/test</value>
14 </property>
15 <property name="username">
16 <value>root</value>
17 </property>
18 <property name="password">
19 <value>jiadong</value>
20 </property>
21 </bean>
22 <bean id="sessionFactory"
23 class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
24 <property name="dataSource">
25 <ref bean="dataSource" />
26 </property>
27 <property name="hibernateProperties">
28 <props>
29 <prop key="hibernate.dialect">
30 org.hibernate.dialect.MySQLDialect
31 </prop>
32 <prop key="hibernate.show_sql">true</prop>
33 </props>
34 </property>
35 <property name="mappingResources">
36 <list>
37 <value>org/jia/Account.hbm.xml</value>
38 </list>
39 </property>
40 </bean>
41 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
42 <property name="sessionFactory" ref="sessionFactory"></property>
43 </bean>
44 <bean id="accountDAO" class="org.jia.AccountDAO">
45 <property name="sessionFactory" ref="sessionFactory"></property>
46 </bean>
47 <bean id="accountService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
48 <property name="transactionManager" ref="transactionManager"></property>
49 <property name="target">
50 <bean class="org.jia.AccountService">
51 <property name="accountDAO" ref="accountDAO"></property>
52 </bean>
53 </property>
54 <property name="transactionAttributes">
55 <props>
56 <prop key="transfer">PROPAGATION_REQUIRED</prop>
57 </props>
58 </property>
59 </bean>
60 </beans>
61
posted on 2007-08-31 11:24
jiadong 阅读(920)
评论(1) 编辑 收藏 所属分类:
SPRING