189 8069 5689

SSH、IBatis等框架相关知识-创新互联

Spring的事务

成都创新互联公司主要从事成都做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务太仓,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

   事务使用ACID特性来衡量事务的质量。这些特性包括原子性、一致性

隔离性和持久性。

  a.原子性:事务必须是原子的。不可分割的,在事务结束的时候,事务中的所有任务必须全部成功完成或者全部任务失败,事务回滚到事务开始之前的状态

  b.一致性:数据库中的所有数据必须和现实保持一致。

   c.隔离性:事务与事务之间的屏障。每个事务必须与其他事务的执行结果隔离开,直到该事务执行完毕。

   d.持久性:如果事务成功执行,无论系统发生什么情况,事务的持久性必须保证事务的执行结果是永存的。

   在事务处理中有违反ACID特性的三个问题:脏读、不可重复读和幻读。

   脏读:当一个事务读取了一个事务尚未提交的更新,就叫作脏读取。

   不可重复读:在一个事务中执行多次同样的查询操作,但每次查询的结果都不相同,叫不可重复读

   幻读:一个事务的更新结果影响到了另一个事务的问题。

   Spring的事务管理器有5个,也即DataSourceTransactionManager(JDBC事务管理器),HibernateTransactionManager(Hibernate事务管理器),JdoTransactionManager(JDO事务管理器),JtaTransactionManager(Jta事务管理器)以及Apache的OJB事务管理器。

  Spring支持声明式事务,并建议这样做。因为Spring中的事务是基于AOP实现的,而Spring的AOP是以方法为单位的,所以Spring的事务属性就是对事务应用到方法的策略描述,这些属性分别为:传播行为、隔离级别、只读和超时属性。

   事务的传播行为是事务应用于方法的边界,它定义了事务的建立、暂停等行为。

   事务的隔离级别:为了解决事务之间的3个缺陷,必须在事务之间建立隔离关系来保障事务的完整性。

   事务的只读属性:在数据库的操作中,查询是使用最频繁的操作,每次执行查询操作时都要从数据库中重新读取数据,有时多次读取的数据都是相同的,这样的操作浪费了系统资源和影响了系统速度。如果将食物声明为只读,那么数据库可以根据事务的特性优化事务的读取操作。事务的只读属性需要配合事务的PROPAGATION_REQUIRED、PROPAGATION_REQUIRES_NEW和PROPAGATION_NESTED传播行为共同设置。

   事务的超时属性:设置了事务的超时时间。

   Spring的声明式事务不涉及组建依赖关系,它通过AOP实现事务管理。在使用Spring的声明式事务时不需要编写任何代码。使用事务代理工厂来管理事务。事务代理工厂TransactionProxyFactoryBean包含了事务拦截器、目标代理和事务的属性设置。

   Spring使用注解式进行事务管理,配置示例

   步骤一、在Spring配置文件中引入命名空间


   步骤二、具有@Transactional注解的bean自动配置为声明式事务


     
     	
     
     
	
		
		
			
			
			
			
			
			
			
			
			
			
			
			
		
	
	
	
		
		
		
	

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


网页名称:SSH、IBatis等框架相关知识-创新互联
链接地址:http://jkwzsj.com/article/pohpd.html

其他资讯