阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制
新建项目
把之前项目src下的内容全部复制过来
pom.xml内复制过来
开始配置
新建一个config的包,然后再新建配置文件类SpringConfiguration
@Configuration这个注解是可写可不写的。
这个类会做为字节码的参数传给ApplicationContext
@ComponentScan配置要扫描的包
@Import
但是这个Import要导谁呢?
新建JdbcConfig类
这一就可以通过Import导入JdbcConfig这个类
xml里面扫描包的配置可以省略掉了。可以删除
jdbcConfig
下面这两块的内容,我们就可以配置到JdbcConfig这个类里面了
创建一个createJdbcTempalte里面需要一个dataSource类型的参数
DataSource需要导包,这个包可能需要自己手动导入
现在缺少的就是DataSource。
同时让他进容器也需要加上@Bean的注解
这四个变量我们可以在上面定义
都使用@Value注解,里面使用Spring的EL表达式
创建配置文件jdbcConfigProperties
@PropertySource注解
bean.xml内这里就可以删除了
开启注解事物的支持
这样这段就可以删除了。
事物配置
定义创建TransactionManager的方法,传入一个dataSource数据源
让它进Spring容器就加上@Bean的注解
bean.xml内的这两行代码就可以删除掉。
删除整个bean.xml
SpringConfiguration内再导入TransactionConfig
修改测试类
修改前的配置
修改为注解的方式
数据库默认的初始值
默认异常存在
运行我们的测试类
事务被控制住了
把异常去掉
可以正常转账成功
以上就是基于纯注解的配置
开启spring注解事务的支持
这样基于声明事务就告一段落了。
阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制的更多相关文章
- spring基于注解的声明式事务控制
package com.hope.service.impl;import com.hope.dao.IAccountDao;import com.hope.domain.Account;import ...
- Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制
Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制 201311.27 代码下载 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 前言 ...
- 阶段3 2.Spring_10.Spring中事务控制_7 spring基于注解的声明式事务控制
创建新项目 复制上一个pom.xml的内容.依赖和打包的方式 再复制src的代码过来 bean.xml.多导入context的声明 Service的实现类增加注解 dao的set方法删掉 通过Auto ...
- spring注解开发-声明式事务(源码)
1. 环境搭建与测试 1)导入相关依赖 数据源.数据库驱动.Spring-jdbc模块 <dependency> <groupId>org.springframework< ...
- 解决 spring mvc 3.0 结合 hibernate3.2 使用<tx:annotation-driven>声明式事务无法提交的问题(转载)
1.问题复现 spring 3.0 + hibernate 3.2 spring mvc使用注解方式:service使用@service注解 事务使用@Transactional 事务配置使用 < ...
- 28Spring_的事务管理_银行转账业务加上事务控制_基于注解进行声明式事务管理
将applicationContext.xml 和 AccountServiceImpl 给备份一个取名为applicationContext2.xml 和 AccountServiceImpl2.j ...
- spring下春注解的声明式事务控制
package com.hope.test;import com.hope.domain.Account;import com.hope.service.IAccountService;import ...
- 27Spring_的事务管理_银行转账业务加上事务控制_基于tx.aop进行声明式事务管理
上一篇文章中,银行转账业务没有使用事务,会出现问题,所以这篇文章对上篇文章出现的问题进行修改. 事务 依赖 AOP , AOP需要定义切面, 切面由Advice(通知) 和 PointCut(切点) ...
- Spring事务的介绍,以及基于注解@Transactional的声明式事务
前言 事务是一个非常重要的知识点,前面的文章已经有介绍了关于SpringAOP代理的实现过程:事务管理也是AOP的一个重要的功能. 事务的基本介绍 数据库事务特性: 原子性 一致性 隔离性 持久性 事 ...
随机推荐
- 一,Devops核心要点及kubernetes的架构概述
目录 1,devops的简述及要点 2,kubernetes的简单介绍与组成 特性 集群构成 pod的基本概念 kubernetes网络 1,devops的简述及要点 DevOps,分层架构 ---& ...
- touch cyusbConfig.cmake
touch cyusbConfig.cmake cmake文件丢失,与其解决问题,不如临时建立一个临时文件
- 通过实现接口runnable实现多线程
实现Runnable接口实现多线程的步骤(1)编写类实现Runnable接口(2)实现run(方法(3)通过Thread类的start(方法启动线程 静态代理模式Thread >代理 角色MyR ...
- qt5-QWidget坐标系统和大小和展示区域
#include "win.h" #include <QPushButton> #include <QLabel> #include <QDebug& ...
- JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、jinfo、jconsole使用详解
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jstack.jmap.jhat.jstat等小巧的工具,本博客希望能起抛砖引玉之用,让 ...
- sqlserver字段选择参照
SQL SERVER提供的说明. bit:0或1的整型数字 int:从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字 smallint:从-2^15( ...
- CF1073D Berland Fair 二分+线段树
考场上切的,挺简单的~ Code: #include <cstdio> #include <algorithm> #define N 200005 #define inf 10 ...
- Nowcoder 练习赛 17 C 操作数 ( k次前缀和、矩阵快速幂打表找规律、组合数 )
题目链接 题意 : 给定长度为n的数组a,定义一次操作为: 1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007: 2. ...
- codevs 5969 [AK]刻录光盘x
题目描述 Description • 在FJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学 ...
- Android 属性动画监听事件与一个菜单的例子
简单监听事件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3 ...