哪个帮我详细的讲解下 spring struts hibernate 的事物咯 还有他们的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个帮我详细的讲解下 spring struts hibernate 的事物咯 还有他们的区别相关的知识,希望对你有一定的参考价值。
参考技术A 首先定义事务管理器:事务的处理也交给了spring来管理,要在applicationContext.xml文件中配置事务管理类:
通过sessionFactory来管理,因此在传进来一个sessionFactory来接管事务处理
声明式事务处理:
在spring中对事务进行管理时,可以显示地进行事务处理的定义,配置事务的传播特性
spring的事务隔离级别
ISOLATION_DEFAULT:
使用数据库默认的隔离级别。
ISOLATION_READ_UNCOMMITTED:
允许读取改变了的还未提交的数据,可能导致脏读、不可重复读和幻读。
ISOLATION_READ
COMMITTED:
允许并发事务提交之后读取,可以避免脏读,可能导致重复读和幻读。
ISOLATION_REPEATABLE_READ:
对相同字段的多次读取结果一致,可导致幻读。
ISOLATION_SERIALIZABLE:
完全服从ACID的原则,确保不发生脏读、不可重复读和幻读。
可以根据自己的系统对数据的要求采取适应的隔离级别,因为隔离牵涉到锁定数据库中的记录,对数据正性要求越严格,并发的性能也越差。
spring的事务传播行为
spring事务的传播行为说的是当一个方法调用另一个方法时,事务该如何操作。
PROPAGATION_MANDATORY:
该方法必须运行在一个事务中。如果当前事务不存在则抛出异常。
PROPAGATION_NESTED:
如果当前存在一个事务,则该方法运行在一个嵌套的事务中。被嵌套的事务可以从当前事务中单独的提交和回滚。如果当前不存在事务,则开始一个新的事务。各厂商对这种传播行为的支持参差不齐,使用时需注意。
PROPAGATION_NEVER:
当前方法不应该运行在一个事务中。如果当前存在一个事务,则抛出异常。
PROPAGATION_NOT_SUPPORTED:
当前方法不应该运行在一个事务中。如果一个事务正在运行,它将在该方法的运行期间挂起。
PROPAGATION_REQUIRED:
该方法必须运行在一个事务中。如果一个事务正在运行,该方法将运行在这个事务中。否则,就开始一个新的事务。
PROPAGATION_REQUIRES_NEW:
该方法必须运行在自己的事务中。它将启动一个新的事务。如果一个现有的事务正在运行,将在这个方法的运行期间挂起。
PROPAGATION_SUPPORTS:
当前方法不需要事务处理环境,但如果一个事务已经在运行的话,这个方法也可以在这个事务里运行。
通过配置需要处理事务的包
具体需要用通配符实现
<aop:config>
<aop:advisor
pointcut="execution(*
cwcy..service.*.*(..))"
advice-ref="txAdvice"
/>
</aop:config>
Struts + Spring + Hibernate 集成
【中文标题】Struts + Spring + Hibernate 集成【英文标题】:Struts + Spring + Hibernate integration 【发布时间】:2012-01-01 05:53:23 【问题描述】:例如,我们有下一组:Struts
、Spring
、Hibernate
。你能帮我理解每个元素所扮演的角色吗?
我知道Hibernate
负责数据库上的一切。
但是,Struts
和 Spring
在这种情况下扮演什么角色?
谢谢。
【问题讨论】:
Here 是一些解释。 【参考方案1】:Struts 是 Web 应用程序框架 - 用于让您可以通过 Web 界面公开您的应用程序,而无需处理低级类。在使用 struts 时,您应该小心,因为在 struts 类中使用应用程序逻辑时经常会有不好的建议。不要这样做,struts 只是 web 前端。
Spring 是一个通用的应用程序框架,它首先帮助您使用依赖注入将类彼此分离。但这不是使用 spring 的唯一原因,它提供了大量其他特性:http 安全性、面向方面的编程、开箱即用的集成以及对不同框架的支持。因此,这可以让您快速开始使用不同的技术。
Hibernate 是对象关系映射。使用它,您可以将类映射到数据库关系并避免使用 SQL 请求。
【讨论】:
【参考方案2】:我的猜测:
Struts 用于演示目的。 Spring 用于 AOP 和依赖注入。 Hibernate 很明显:持久性。
【讨论】:
是的。 AOP 的主要用途可能是以声明方式划分事务。【参考方案3】:春天:
依赖注入 事务管理。 在视图过滤器中打开会话 Spring 安全性。 或者换句话说,在应用层之间提供了很好的线索。支柱:
模型和视图设计模式。 简化网络流程。【讨论】:
【参考方案4】:Struts 用于 Web 应用程序的准备。它具有出色的表单验证 f/w 和磁贴 f/w 以出色地创建 Web 应用程序。
Spring 有 6 个模块。它提供了对 java-j2ee 应用程序的抽象。 Spring MVC 为 struts 提供了抽象。
【讨论】:
以上是关于哪个帮我详细的讲解下 spring struts hibernate 的事物咯 还有他们的区别的主要内容,如果未能解决你的问题,请参考以下文章
struts2的拦截器跟spring2 AOP有啥区别?哪个好?
Struts + Spring + Hibernate 集成
《Spring学习笔记》:SpringHibernatestruts2的整合(以例子来慢慢讲解,篇幅较长)