springaop注解事物事务管理简介 Spring 事务管

电脑杂谈  发布时间:2018-02-20 23:06:17  来源:网络整理

spring MVC注解aop_springaop注解事物_spring 事务

中国竞彩网??Spring 事务管理有两种方式:一种是编程式事务管理,即通过编写代码实现事物管理,包括定义事务的开始,程序正常执行后的事物提交,异常时进行的事务回滚。另一种是基于AOP技术实现的声明式事务管理,其主要思想是将事务管理作为一个“切面”代码单独编写,我们只用关心核心业务逻辑代码,然后通过AOP技术将事务管理的“切面”代码织入到业务类中,声明式事务管理有包括基于AOP方式的事务管理和基于 @Transactional注解方式的事务管理,声明式事务管理极大的简化了编程式事务管理的操作流程,不再需要重复地执行定义事物的开始,程序正常执行后事务提交,异常时进行事物回滚这些繁琐的操作,而基于 @Transactional注解的声明式事务又进一步简化了基于AOP的事务管理,减少了Spring配置代码。

??声明式事务的缺点在于只能作用到方法级别,无法做到像编程式事务那样能控制到代码块级别。

事务传播行为

中国竞彩网??事务规则也就是事务传播行为,用于解决业务层方法之间的相互调用的问题题。常见的事物传播行为可分为以下几种:

名称说明

表示当前方法必须运行在一个事物环境中,如果一个现有的事物正在运行,该方法将运行在这个事务中,否则,就要开始一个新的事务

中国竞彩网??事务管理的主要任务是事务的创建,事务的回滚和事务的提交,是否需要创建事务及如何创建事务,是由事务传播行为控制的,通常数据的读取可以不需要事务管理,或者可以指定为只读事务,而对于数据的增加,删除和修改操作,则有必要进行事务管理。如果没有指定事务的传播行为,Spring默认采用REQUIRED。

中国竞彩网创建表sql(三个账户,初始化金额都为1000)

项目所需jar包

技术分享图片

??因为我的jdk是1.8,如果spring的版本用spring3.X的话,后面会出现参数不匹配异常java.lang.IllegalArgumentException,所以我换成了Spring4。

连接参数

技术分享图片

中国竞彩网日志文件log4j.properties

创建业务层接口和实现类

中国竞彩网创建DAO层接口和实现类

这里让Dao层实现类继承JdbcDaoSupport,这样一来就可以将JdbcTemplate注入其中,不过我是直接将DataSource连接池注入其中,这时我的DAO实现类就可以创建一个JdbcTemplate,然后操作的相关内容。

中国竞彩网??当然也可以不选择让DAO层继承JdbcDaoSupport,而是把JdbcTemplate作为他的属性进行操作,通过setter方法利用JdbcTemplate的构造方法将dataSource传入。

配置applicationContext.xml

要将c3p0的连接池注入DAO层实现类中,使其可以创建JdbcTemplate。

测试转账效果

让测试运行于Spring测试环境中,并引入配置文件

注意Junit使用spring时,若spring没加载到log4j就会报以下警告:

中国竞彩网log4j:WARN No appenders could be found for logger(org.springframework.test.context.junit4.SpringJUnit4ClassRunner).log4j:WARN Please initialize the log4j system properly.

测试业务层类,在用注解 @Resource(name="accountService")和private AccountService accountService;默认按名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。 @Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。springaop注解事物


本文来自电脑杂谈,转载请注明本文网址:
中国竞彩网http://dawgspsp.com/a/jisuanjixue/article-86311-1.html

相关阅读
发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

每日福利
热点图片
拼命载入中...