spring基于注解的声明式事务控制

陌路散爱 提交于 2019-12-05 15:10:16
package com.hope.service.impl;import com.hope.dao.IAccountDao;import com.hope.domain.Account;import com.hope.service.IAccountService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;/** * @author newcityman * @date 2019/11/20 - 16:45 */@Service("accountService")@Transactional(readOnly = true,propagation = Propagation.SUPPORTS)public class AccountServiceImpl implements IAccountService {    @Autowired    private IAccountDao accountDao;    public Account findAccountById(Integer accountId) {       return  accountDao.findAccountById(accountId);    }   @Transactional(readOnly = false,propagation = Propagation.REQUIRED)    public void transfer(String sourceName, String targetName, Float money) {        Account source = accountDao.findAccountByName(sourceName);        Account targe = accountDao.findAccountByName(targetName);        source.setMoney(source.getMoney() - money);        targe.setMoney(targe.getMoney() + money);        accountDao.updateAccount(source);//        int i = 1 / 0;        accountDao.updateAccount(targe);    }}
<?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:context="http://www.springframework.org/schema/context"       xmlns:tx="http://www.springframework.org/schema/tx"       xsi:schemaLocation="        http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx.xsd        http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd">    <!--配置spring容器创建时要扫描的包-->    <context:component-scan base-package="com.hope"></context:component-scan>    <!--配置jdbcTemplate-->    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">        <property name="dataSource" ref="dataSource"></property>    </bean>    <!--数据源-->    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>        <property name="url" value="jdbc:mysql://localhost:3306/easy"/>        <property name="username" value="root"/>        <property name="password" value="123"/>    </bean>    <!--spring中基于注解的声明式事务控制配置步骤      1、配置事务管理器      2、开启spring对注解事务的支持      3、在需要事务支持的地方使用@transactional    -->    <!--配置事务-->    <!--配置事务管理器-->    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource"></property>    </bean>    <!--开启spring对注解事务的支持-->    <tx:annotation-driven transaction-manager="transactionManager" ></tx:annotation-driven></beans>
 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!