- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring_day03总结
今日内容
Spring的事务管理
三大框架整合
上次课的内容回顾:
Spring的AOP开发:
* AOP:面向切面编程,是对OO思想延伸.
* AOP底层实现原理:动态代理.
* JDK动态代理:针对实现了接口的类生产代理.
* CGLIB代理:针对没有实现接口的类,产生一个子类.
* AOP术语:
* JoinPoint:可以被拦截点.
* Ponitcut:真正被拦截.
* Advice:通知,增强的代码.
* 引介:特殊通知,类级别上添加属性或方法.
* Target:目标对象.
* Proxy:代理对象.
* Weaving:
* Aspect:
* Spring的AOP的开发:
* 配置applicationContext.xml生成代理对象.
* 使用ProxyFactoryBean类生产代理:
* 根据目标对象是否实现了接口,选择使用JDK还是CGLIB.
* 缺点:需要为每个类都去配置一个ProxyFactoryBean.
* 采用Spring自动代理:
* 基于类名称的自动代理:(采用后处理Bean)
* 基于切面信息的自动代理:(采用后处理Bean)
* Spring的AspectJ的切面开发.
* AspectJ:本身第三方切面框架.
* AspectJ基于注解开发:
* 定义切面:
@Aspect
* 定义增强:
@Before:前置通知.
@AfterReturing:后置通知.
@Around:环绕通知.
@AfterThrowing:异常抛出通知.
@After:最终通知.
* 定义切点:
@Pointcut
* AspectJ基于XML开发:
* 引入aop名称空间.
aop:config
aop:pointcut expression=”” id=””/
aop:aspect ref=””
aop:before...
/aop:aspect
/aop:config
Spring的JDBCTemplate:
* 配置连接池:
* 默认
* DBCP
* C3P0(*****)
* 引入外部属性文件.
* 在DAO中注入JdbcTemplate.
* 在DAO中不直接注入模板.Dao集成JdbcDaoSupport.
* CRUD的操作.
Spring的事务管理:
事务:
事务:是逻辑上一组操作,要么全都成功,要么全都失败.
事务特性:
ACID:
原子性:事务不可分割
一致性:事务执行的前后,数据完整性保持一致.
隔离性:一个事务执行的时候,不应该受到其他事务的打扰
持久性:一旦结束,数据就永久的保存到数据库.
如果不考虑隔离性:
脏读:一个事务读到另一个事务未提交数据
不可重复读:一个事务读到另一个事务已经提交数据(update)导致一个事务多次查询结果不一致
虚读:一个事务读到另一个事务已经提交数据(insert)导致一个事务多次查询结果不一致
事务的隔离级别:
未提交读:以上情况都有可能发生。
已提交读:避免脏读,但不可重复读,虚读是有可能发生。
可重复读:避免脏读,不可重复读,但是虚读有可能发生。
串行的:避免以上所有情况.
Spring中事务管理:
分层开发:事务处在Service层.
Spring提供事务管理API:
PlatformTransactionManager:平台事务管理器.
commit(TransactionStatus?status)
getTransaction(TransactionDefinition?definition)
rollback(TransactionStatus?status)
TransactionDefinition:事务定义
ISOLation_XXX:事务隔离级别.
PROPAGATION_XXX:事务的传播行为.(不是JDBC中有的,为了解决实际开发问题.)
过期时间:
TransactionStatus:事务状态
是否有保存点
是否一个新的事务
事务是否已经提交
关系:PlatformTransactionManager通过TransactionDefinition设置事务相关信息管理事务,管理事务过程中,产生一些事务状态:状态由TransactionStatus记录.
API详解:
PlatformTransactionManager:接口.
Spring为不同的持久化框架提供了不同PlatformTransactionManager接口实现
org.springframework.jdbc.datasource.DataSourceTransactionManager : 使用Spring JDBC或iBatis 进行持久化数据
文档评论(0)