spring中事务配置的3种方式
来源:互联网 发布:即时通讯软件 开源 编辑:程序博客网 时间:2024/05/22 16:38
http://xuxiaolei.iteye.com/blog/417803
(1)通过TransactionProxyFactoryBean来声明
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
- <property name="url" value="jdbc:hsqldb:hsql://localhost" />
- <property name="username" value="sa" />
- <property name="password" value="" />
- </bean>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="mappingResources">
- <list>
- <value>domain/Contestant.hbm.xml</value>
- <value>domain/Event.hbm.xml</value>
- <value>domain/Location.hbm.xml</value>
- <value>domain/User.hbm.xml</value>
- <value>domain/Voter.hbm.xml</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">
- org.hibernate.dialect.HSQLDialect
- </prop>
- <prop key="hibernate.show_sql">true</prop>
- </props>
- </property>
- </bean>
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <bean id="parentService"
- class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
- abstract="true">
- <property name="transactionManager" ref="transactionManager" />
- <property name="transactionAttributes">
- <props>
- <prop key="add*">PROPAGATION_REQUIRED</prop>
- <prop key="update*">PROPAGATION_REQUIRED</prop>
- <prop key="persist*">PROPAGATION_REQUIRED</prop>
- <prop key="delete*">PROPAGATION_REQUIRED</prop>
- <prop key="*">PROPAGATION_SUPPORTS,readOnly</prop>
- </props>
- </property>
- </bean>
- <bean id="userDao" class="dao.UserDaoImpl">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <bean id="userServiceTarget" class="service.UserServiceImpl">
- <property name="userDao" ref="userDao" />
- </bean>
- <bean id="userService" parent="parentService">
- <property name="target" ref="userServiceTarget" />
- <property name="proxyInterfaces" value="service.UserService" />
- </bean>
- </beans>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="org.hsqldb.jdbcDriver" /><property name="url" value="jdbc:hsqldb:hsql://localhost" /><property name="username" value="sa" /><property name="password" value="" /></bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mappingResources"><list><value>domain/Contestant.hbm.xml</value><value>domain/Event.hbm.xml</value><value>domain/Location.hbm.xml</value><value>domain/User.hbm.xml</value><value>domain/Voter.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop><prop key="hibernate.show_sql">true</prop></props></property></bean><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="parentService"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"abstract="true"><property name="transactionManager" ref="transactionManager" /><property name="transactionAttributes"><props><prop key="add*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="persist*">PROPAGATION_REQUIRED</prop><prop key="delete*">PROPAGATION_REQUIRED</prop><prop key="*">PROPAGATION_SUPPORTS,readOnly</prop></props></property></bean><bean id="userDao" class="dao.UserDaoImpl"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="userServiceTarget" class="service.UserServiceImpl"><property name="userDao" ref="userDao" /></bean><bean id="userService" parent="parentService"><property name="target" ref="userServiceTarget" /><property name="proxyInterfaces" value="service.UserService" /></bean></beans>
(2)通过aop:config
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
- <property name="url" value="jdbc:hsqldb:hsql://localhost" />
- <property name="username" value="sa" />
- <property name="password" value="" />
- </bean>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="mappingResources">
- <list>
- <value>domain/Contestant.hbm.xml</value>
- <value>domain/Event.hbm.xml</value>
- <value>domain/Location.hbm.xml</value>
- <value>domain/User.hbm.xml</value>
- <value>domain/Voter.hbm.xml</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">
- org.hibernate.dialect.HSQLDialect
- </prop>
- <prop key="hibernate.show_sql">true</prop>
- </props>
- </property>
- </bean>
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <tx:advice id="txAdvice">
- <tx:attributes>
- <tx:method name="add*" propagation="REQUIRED" />
- <tx:method name="update*" propagation="REQUIRED" />
- <tx:method name="delete*" propagation="REQUIRED" />
- <tx:method name="persist*" propagation="REQUIRED" />
- <tx:method name="*" propagation="SUPPORTS" read-only="true"/>
- </tx:attributes>
- </tx:advice>
- <aop:config>
- <aop:advisor pointcut="execution(* *..UserService.*(..))" advice-ref="txAdvice" />
- </aop:config>
- <bean id="userDao" class="dao.UserDaoImpl">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <bean id="userService" class="service.UserServiceImpl">
- <property name="userDao" ref="userDao" />
- </bean>
- </beans>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="org.hsqldb.jdbcDriver" /><property name="url" value="jdbc:hsqldb:hsql://localhost" /><property name="username" value="sa" /><property name="password" value="" /></bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mappingResources"><list><value>domain/Contestant.hbm.xml</value><value>domain/Event.hbm.xml</value><value>domain/Location.hbm.xml</value><value>domain/User.hbm.xml</value><value>domain/Voter.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop><prop key="hibernate.show_sql">true</prop></props></property></bean><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><tx:advice id="txAdvice"><tx:attributes><tx:method name="add*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="persist*" propagation="REQUIRED" /><tx:method name="*" propagation="SUPPORTS" read-only="true"/></tx:attributes></tx:advice><aop:config><aop:advisor pointcut="execution(* *..UserService.*(..))" advice-ref="txAdvice" /></aop:config><bean id="userDao" class="dao.UserDaoImpl"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="userService" class="service.UserServiceImpl"><property name="userDao" ref="userDao" /></bean></beans>
(3)通过注解
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
- <property name="url" value="jdbc:hsqldb:hsql://localhost" />
- <property name="username" value="sa" />
- <property name="password" value="" />
- </bean>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="mappingResources">
- <list>
- <value>domain/Contestant.hbm.xml</value>
- <value>domain/Event.hbm.xml</value>
- <value>domain/Location.hbm.xml</value>
- <value>domain/User.hbm.xml</value>
- <value>domain/Voter.hbm.xml</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">
- org.hibernate.dialect.HSQLDialect
- </prop>
- <prop key="hibernate.show_sql">true</prop>
- <prop key="hibernate.jdbc.batch_size">0</prop>
- </props>
- </property>
- </bean>
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <tx:annotation-driven />
- <bean id="userDao" class="dao.UserDaoImpl">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <bean id="userService" class="service.UserServiceImpl">
- <property name="userDao" ref="userDao" />
- </bean>
- </beans>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="org.hsqldb.jdbcDriver" /><property name="url" value="jdbc:hsqldb:hsql://localhost" /><property name="username" value="sa" /><property name="password" value="" /></bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mappingResources"><list><value>domain/Contestant.hbm.xml</value><value>domain/Event.hbm.xml</value><value>domain/Location.hbm.xml</value><value>domain/User.hbm.xml</value><value>domain/Voter.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.jdbc.batch_size">0</prop></props></property></bean><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><tx:annotation-driven /><bean id="userDao" class="dao.UserDaoImpl"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="userService" class="service.UserServiceImpl"><property name="userDao" ref="userDao" /></bean></beans>
- package service;
- import java.util.List;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- import dao.UserDao;
- import domain.User;
- public class UserServiceImpl implements UserService {
- private UserDao userDao;
- public void setUserDao(UserDao userDao) {
- this.userDao = userDao;
- }
- @Transactional(propagation=Propagation.REQUIRED, readOnly=true)
- public User findById(Long id) {
- return userDao.findById(id);
- }
- @Transactional(propagation=Propagation.REQUIRED, readOnly=true)
- public User findByEmail(String email) {
- return userDao.findByEmail(email);
- }
- @Transactional(propagation=Propagation.REQUIRED, readOnly=false)
- public void persist(User user) {
- userDao.persist(user);
- }
- @Transactional(propagation=Propagation.REQUIRED, readOnly=true)
- public List<User> list() {
- return userDao.list();
- }
- }
- spring中事务配置的3种方式
- spring中事务配置的3种方式-2
- spring的5中事务配置方式
- Spring事务配置的5中方式
- Spring事务配置的5中方式
- spring的事务配置5中方式
- Spring事务配置的五中方式
- Spring中配置事务的几种方式
- Spring中配置事务的几种方式
- Spring中配置事务的几种方式
- Spring中配置事务的几种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Linux驱动之设备模型(6)
- 关于一款优秀的Jquery插件-Colorbox的官方用法翻译
- (C语言教程)指针
- Linux驱动之设备模型(7)
- Android的Activity
- spring中事务配置的3种方式
- GDI 坐标系 与 映射模式
- Linux驱动之设备模型(8)
- 好书答案
- Linux驱动之设备模型(9)-platform
- ubuntu11.10英文版安装gimp软件
- android控制手机系统声音
- matlab GUI中打开文件并做button的Callback
- 寻找丑数