博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 声明式事务管理方式
阅读量:5233 次
发布时间:2019-06-14

本文共 2736 字,大约阅读时间需要 9 分钟。

声明式事务管理,基于AOP对目标代理,添加环绕通知,比编码方案优势,不具有侵入式,不需要修改原来的代码.

1.基于XML配置的声明式事务管理方案(案例)

     接口Service

public interface IAccountService {    public void account(String outname,String inname,double money);}

service实现类

//@Transactional()注解时使用

public class AccountServiceImpl implements IAccountService{
@Autowired
private IAccountDao accountDao;

public void setAccountDao(IAccountDao accountDao) {

this.accountDao = accountDao;
}
//转账操作的方法
@Override
public void account(String outname, String inname, double money) {
//从outname转出
accountDao.accountOut(outname,money);
int a=10/0;
//从inname转入
accountDao.accountIn(inname,money);
//setter注入
}

Dao接口

public interface IAccountDao {    public void accountOut(String outname, double money);    public void accountIn(String inname, double money);}

Dao实现类

1 //import org.springframework.jdbc.core.JdbcTemplate; 2 import org.springframework.jdbc.core.support.JdbcDaoSupport; 3 //由于JdbcDaoSupport的父类继承了Daosupport,它创建了JdbcTemplate,前提我们先注入一个dataSource 4 public class AccountDaoImpl extends JdbcDaoSupport implements IAccountDao{ 5     //private JdbcTemplate jdbcTemplate; 6     //从outname中取钱 7     @Override 8     public void accountOut(String outname, double money) { 9         this.getJdbcTemplate().update("update account set money=money-? where name= ?",money,outname);10     }11     //向inname中存钱12     @Override13     public void accountIn(String inname, double money) {14         this.getJdbcTemplate().update("update account set money=money+? where name= ?",money,inname);15     }16 17 }

测试类

@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath:applicationContext.xml")public class accountServiceTest {    @Autowired    private IAccountService accountService;    @Test    public void test1() {        accountService.account("tom", "fox", 500);    }}

applicationContext.xml配置文件

1 
2
10 11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 31
32
34
35
36 37
38
39
40
49
50 51
52
53 54
55
56
57
58
59
60
61
62

db.properties----------当我们需要频繁修改其中的内容,写到这个配置文件便于管理

jdbc.driverClass=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:///springtestjdbc.username=rootjdbc.password=123

 

转载于:https://www.cnblogs.com/wwwzzz/p/7922166.html

你可能感兴趣的文章
Druid介绍2
查看>>
硬件电路
查看>>
Mysql/Oracle/达梦中数据字典表
查看>>
SQL Server 分区表
查看>>
JS高级程序设计 第七章 函数表达式
查看>>
C# 使用 StructLayoutAttribute 时 C# /C++ 内存空间分配与成员对齐问题
查看>>
Python调用百度地图API实现批量经纬度转换为实际省市地点(api调用,json解析,excel读取与写入)...
查看>>
Valve新员工手册
查看>>
C# CreateParams的使用(解决闪屏问题)
查看>>
【数据结构】数组操作(LowArrayApp.java)
查看>>
IAR MSP430设置合理堆栈大小(the stack pointer for stack is outside the stack range)
查看>>
Linux系统监测—查询系统CPU,内存,IO信息
查看>>
laravel 获取器和修改器
查看>>
mysql spider之拆库无忧
查看>>
Eclipse中文乱码解决方案
查看>>
C#通过字符串名称来调用对应字符串名称的方法
查看>>
Linux常用命令
查看>>
学习笔记:ASP.NET MVC之路由
查看>>
关于跨域的简单想法(此想法是错误的,特此备注)
查看>>
树链剖分模板题
查看>>