开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情
写在前面
作为一个java程序员,spring应该都不会陌生了吧?
对于大部分程序员来说,spring的入门,估计跑起一个框架,熟悉一下开发的流程,基本上就掌握spring框架的开发了。
随着开发年限的变大,我们不能仅仅是掌握到这个地步,更应该深入的学习spring框架。
这不,接下来就是spring框架的学习之旅了,希望可以帮助到大家。
一、事务支持
1.1 Spring框架事务管理的分类
- Spring的编程式事务管理(不推荐使用)
通过手动编写代码的方式完成事务的管理(不推荐)
- Spring的声明式事务管理(底层采用AOP的技术)
通过一段配置的方式完成事务的管理
1.1.1 编程式事务管理(了解)
说明: Spring为了简化事务管理的代码:提供了模板类TransactionTemplate ,所以手动编程的方式来管理事务, 只需要使用该模板类即可! ! 手动编程方式的具体步骤如下: 1.步骤一: 配置一个事务管理器, Spring使用PlatformTransactionManager接口来管理事务,所以咱们需要使用到他的实现类! !
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DatasourceTransactionmanager">
<property name=" datasource" ref="datasource"/>
</bean>
2.步骤二:配置事务管理的模板
<!--配置事务管理的模板-->
<bean id="transactionTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionmanager"/>
</bean>
3.步骤三:在需要进行事务管理的类中,注入事务管理的模板
<bean id="accountservice" class="com.kkb.spring.service.AccountServiceImpl">
<property name: =" accountDao" ref="accountDao"/>
<property name: =" transacti onTemplate" ref =" transactionTemplate"/>
</bean>
4.步骤四:在业务层使用模板管理事务:
//注入事务模板对象
private TransactionTemplate transactionTemplate;
public void setTransacti onTemplate(TransactionTemplate transactionTemplate) {
this.transactionTemplate = transactionTemplate;
}
public void pay(final string out, final String in,final double money) {
transacti onTemplate . execute(new Transacti onCa1llba ckwi thoutResultO {
protected void doInTransac ti onwi thoutResult(Tr ansactionstatus status )
//扣钱
accountDao . outMoney(out, money);
int a= 10/0;
// 加钱
accountDao. inMoney(in, money) ;
});
}
1.1.2 声明式事务管理(重点)
声明式事务管理又分成三三种种方式
- 基于AspectJ的XML方式(重点掌握)
- 基于AspectJ的注解+XML混用方式(重点掌握)
- 基于AspectJ的纯注解方式(重点掌握)
好了,以上就是Spring学习之旅-组件支撑篇(4) 的全部内容了。
今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^
如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!