当前位置:首页 > 开发 > 编程语言 > Spring > 正文

spring 事务配置

发表于: 2014-11-03   作者:annan211   来源:转载   浏览次数:
摘要: spring 官方团队 建议我们使用注解方式 配置事务,这样可以做到精确配置,具体怎么精确,看个人理解,希望在评论处附上,我不明白这一点。 基于xml配置事务 <context:property-placeholder location="classpath:jdbc.properties"/> <bean id="da

spring 官方团队 建议我们使用注解方式 配置事务,这样可以做到精确配置,具体怎么精确,看个人理解,希望在评论处附上,我不明白这一点。
基于xml配置事务


<context:property-placeholder location="classpath:jdbc.properties"/>
	 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
	    <property name="driverClassName" value="${driverClassName}"/>
	    <property name="url" value="${url}"/>
	    <property name="username" value="${username}"/>
	    <property name="password" value="${password}"/>
	     <!-- 连接池启动时的初始值 -->
		 <property name="initialSize" value="${initialSize}"/>
		 <!-- 连接池的最大值 -->
		 <property name="maxActive" value="${maxActive}"/>
		 <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
		 <property name="maxIdle" value="${maxIdle}"/>
		 <!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
		 <property name="minIdle" value="${minIdle}"/>
	 </bean>

	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  	   <property name="dataSource" ref="dataSource"/>
    </bean>

	<aop:config>
	  	<aop:pointcut id="transactionPointcut" expression="execution(* cn.itcast.service..*.*(..))"/>
	  	<aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointcut"/>
	</aop:config> 
	<tx:advice id="txAdvice" transaction-manager="txManager">
		  <tx:attributes>
		    <tx:method name="get*" read-only="true" propagation="NOT_SUPPORTED"/>
		    <tx:method name="*"/>
		  </tx:attributes>
	</tx:advice>

	<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">
		<property name="dataSource" ref="dataSource"/>
	</bean>




基于注解配置事务

  @Transactional
public class PersonServiceBean implements PersonService {
	private JdbcTemplate jdbcTemplate;
	
	public void setDataSource(DataSource dataSource) {
		this.jdbcTemplate = new JdbcTemplate(dataSource);
	}
	// unchecked ,
	// checked
	@Transactional(noRollbackFor=RuntimeException.class)
	public void delete(Integer personid) throws Exception{
		jdbcTemplate.update("delete from person where id=?", new Object[]{personid},
				new int[]{java.sql.Types.INTEGER});
		throw new RuntimeException("运行期例外");
	}
	@Transactional(propagation=Propagation.NOT_SUPPORTED)
	public Person getPerson(Integer personid) {		
		return (Person)jdbcTemplate.queryForObject("select * from person where id=?", new Object[]{personid}, 
				new int[]{java.sql.Types.INTEGER}, new PersonRowMapper());
	}

	@Transactional(propagation=Propagation.NOT_SUPPORTED)
	@SuppressWarnings("unchecked")
	public List<Person> getPersons() {
		return (List<Person>)jdbcTemplate.query("select * from person", new PersonRowMapper());
	}

	public void save(Person person) {
		jdbcTemplate.update("insert into person(name) values(?)", new Object[]{person.getName()},
				new int[]{java.sql.Types.VARCHAR});
	}

	public void update(Person person) {
		jdbcTemplate.update("update person set name=? where id=?", new Object[]{person.getName(), person.getId()},
				new int[]{java.sql.Types.VARCHAR, java.sql.Types.INTEGER});
	}

spring 事务配置

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机
转载出处:http://www.blogjava.net/liudecai/archive/2009/04/08/264467.html 非常感谢有人总结出
根据代理机制不同,有以下几种配置方式: 先定义一个DAO接口及实现类: Java代码 public interface I
转载出处:http://www.blogjava.net/liudecai/archive/2009/04/08/264467.html 非常感谢有人总结出
lygle 写道 根据代理机制不同,有以下几种配置方式: 先定义一个DAO接口及实现类: public interface
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机
根据代理机制不同,有以下几种配置方式: 先定义一个DAO接口及实现类: public interface IUserDao {
事务配置 首先在/WEB-INF/applicationContext.xml添加以下内容: <!-- 配置事务管理器 --> &l
环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AO
1. spring的事务如何配置 spring的声明式事务配置: 1. <!-- 配置sessionFactory --> <bea
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号