事务管理
spring将事务的管理委托给了持久层的框架
四个特性:原子性,一致性,隔离性,持久性。
事务的隔离级别,四层。
jdbc对事务的管理,2.0的时候只有:提交和回滚。
不管选择的是Spring JDBC,Hibernate,jpa,还是ibatis,spring为为事务管理提供统一的模板,声明式事务管理。
Spring的事务管理spi的抽象层主要包括3个接口,分别是PlatformTransationManager,TransationDefinition和TransationStatus.
TransationDefinition描述事务的隔离级别,超时时间,是否为只读事务等控制事务具体行为的事务属性,这些事务属性可以通过xml配置或者注解描述提供,也可以通过手动编程的方式进行设置。
PlatformTransationManager根据TransationDefinition提供的事务属性配置信息,创建事务,并用TransationStatus来描述这个激活事务的状态。
不同的持久层框架对应不同的事务管理器的实现类。
编程式事务管理:TransactionTemplate
xml配置声明式事务管理:通过spring aop实现,通过事务的声明信息,spring将事务管理增强逻辑动态的织入到业务的方法相应的连接点中。这些逻辑就包括:获取线程绑定资源,开始事务,提交/回滚事务等。
注解配置声明式事务:具有一组普适性的默认事务属性。使用很方便
|
|
Spring框架提供的各种的好处的唯一前提就是让pojo的类变成受Spring容器管理的Bean。
资源加载机制
Spring 的Resource接口及其实现类可以脱离Spring框架使用,比JDK的资源访问api更加好用.
FileSystemResource,以文件系统的绝对路径的方式进行访问。
ClassPathResource,以类路径的方式进行访问。
ServletContextResource,以相对于web应用根目录的方式进行访问。
资源地址表达式:
clsspath:com/controller/test.java 相对于类的根路径
file:com/controller/test.java 可以是相对路径,也可以是绝对路径
http://www.baidu.com/resource/test.xml 使用UrlResource从Web服务器上获取资源。
ftp://www.baidu.com/resource/test.xml使用UrlResource从FTP服务器上获取资源。
|
|