Spring-事务控制一----基本使用

1、ApplicationContext配置

<!--包扫描-->
 <context:component-scan base-package="com.TxDemo"/>

<!--外部数据源配置文件-->
    <context:property-placeholder location="classpath:dbConfig.properties"/>
    
<!--数据源配置-->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
        <property name="user" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
        <property name="driverClass" value="${jdbc.driverClass}"/>
    </bean>
    
<!--JdbcTemplate-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg name="dataSource" ref="dataSource"/>
    </bean>
  
<!--事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
<!--开启基于注解的事务控制模式-->
    <tx:annotation-driven transaction-manager="transactionManager"/>

2、Service

@Service(value = "bookService")
public class BookService {
    
    

    @Autowired
    BookDao bookDao;

    /*结账:*/
    @Transactional
    public void checkout(String userName, String ISBN, Integer number) {
    
    
        //减库存
        bookDao.updateStock(ISBN, number);
       //计算价格
        float price = bookDao.getPrice(ISBN);
        //减余额
        bookDao.updateBalance(userName, price * number);
    }
}

3、总结

  1. 配置Spring的事务控制管理器DataSourceTransactionManager
  2. 开启基于注解的声明式事务控制,依赖tx命名空间
  3. 给事务方法加注解:@Transactional

猜你喜欢

转载自blog.csdn.net/weixin_44134725/article/details/111185430