`
jx822
  • 浏览: 4626 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于Action的事务

阅读更多
各位java爱好者,我想向大家请教和探讨一下关于struts的事务问题,一个action请求发起后,在哪里用JTA开始对这个请求进行事务控制的?还是一个请求没有事务控制,在使用到Spring开始一个事务更为便捷?谢谢!

ps:补充下下,我知道Spring中的AOP是可以实现事务处理,只是想探讨学习下下不使用Spring怎么在Service层实现事务。
分享到:
评论
13 楼 xiaoxiao_0311 2011-05-09  
LZ,你们是正式开发吗?如果是正式的话,应该有规约吧。。。。虽然对事务控制放在哪都可以,甚至可以 open session in view ,但是要考虑其合理性和必要性。个人觉得,spring 的控制已经很好了,如非特殊需求,够了。
12 楼 AngelAndAngel 2011-05-08  
    我觉得都能向楼上那样回复别人的问题就和谐了。事务确实加在service层比较合适,但本身service这个层次的划分,大多是在数据库操作基础上对业务的封装,是一个逻辑上的概念,而我们不必纠结于逻辑上的代码划分,假如你需要在action这一层来事务控制,也是可以的,因为事务的控制本来不该被所谓的各种层次限制,假如你某个action需要事务,那么你仍然可以加,至于怎么加,不一定非得spring什么的。我现在自己用的一个小框架,在实现action的时候,我会判断本类是否包含事务注解,假如包含,则在工厂生成一个代理类,那么当action(或者任何包含此注解的类)在调用相应方法的时候,会被代理,并在前后加上事务,当然,实现方式还有很多种,希望lz可以想清楚,重要的是这个问题要独立一些所谓的框架来想,不然会自我设限。
11 楼 suhuanzheng7784877 2011-05-08  
treemap 写道
这个问题的关键在于:事务加在哪层合适了?
dao,service还是action,你都试试,最后你会发现加在service是比较合适的

当然不是绝对的,至于事务怎么加?aop式的声明式还是编程式事务

这个是看你框架怎么设计的,那种都可以,那种在什么场合合适

好的设计是可以规避问题的

我比较统一楼上的观点。dao层是比较细粒度的层次,servie是在这些细粒度的层次上进行的业务逻辑整合~~~比如说一个工单的流向涉及到很多其他业务表的增、删、改操作。这时候就比较适合在service层将以上业务逻辑做成一个整体事务性粒度。而如果在Action层的话,可能(当然我指的是大多数应用了啊~~~)不太合适~~~因为Action算是web层与调用业务层的桥梁,他除了调用业务接口还需要负责接收web组件的值啦、根据业务逻辑的返回结果决定返回视图啦等等这种不需要事务的操作,遇到异常了,可以直接向上抛异常即可,web容器,或者更重量级的容器会根据异常告诉视图层的(虽然这种异常处理在用户体验上不是很好啊~~我在这里也是仅仅举个例子)。
说实话原来我也想过,估计其他很多人也想过,在Action层配置事务,后来根据经验确实觉得service层是最适合集成细粒度操作的事务层~~~
还有就是LZ不必介意那些对你造成伤害的回复,你敢提出质疑,就证明你有去读开源项目源代码的勇气、而且没准儿还能做出个开源项目出来!
10 楼 treemap 2011-05-08  
这个问题的关键在于:事务加在哪层合适了?
dao,service还是action,你都试试,最后你会发现加在service是比较合适的

当然不是绝对的,至于事务怎么加?aop式的声明式还是编程式事务

这个是看你框架怎么设计的,那种都可以,那种在什么场合合适

好的设计是可以规避问题的
9 楼 l4borland 2011-05-08  
觉得LZ的思路有些混乱,至少表达上是这样,没有太理解LZ的问题,你是想知道如何用struts或者spring来配置事务,还是说在用struts或者spring的基础上,方便的进行事务管理?
如果是前者,网上资料相当的多。。。
如果是后者,这个如leibos所说,是个规划问题,用spring管理的可能更多些,LZ可以参考spring的例子。
8 楼 AngelAndAngel 2011-05-08  
    楼主在细节上虽然有盲点,但是敢问是好的,但是我发觉回帖的总有那么一些很二的人,太想骂他了。
7 楼 leibos 2011-05-08  
7454103 写道
只要是业务需要! 哪层不能控制事物啊?
那些条条框框也不是万能的!尽信书不如无书!哈

哈个p,哪一层控制事务需要在总体设计上的规划。虽然可以在任务一层进行事务,但确只充许你在其中一层做事务。很多条条框框还是很有必要的,特别是当你很菜时。
6 楼 7454103 2011-05-08  
只要是业务需要! 哪层不能控制事物啊?
那些条条框框也不是万能的!尽信书不如无书!哈
5 楼 kjj 2011-05-08  
         
lifeier 写道
jx822 写道
[quote="lifeier"]水平真够菜的。事务都是在spring中控制的。aop的方式控制的。你怎么学的java。

struts也可以控制事务,或者使用JTA,我指的是不用Spring的aop实现!

你这样,我还是要说你菜。还不服。不用spring,那么你总体的业务逻辑在哪里?在struts的action的话,可以用filter和拦截器实现类似aop的功能。真的不知道你怎么学的j2ee,比我这个培训过几个月的还菜。

有些人就执着于他的认识,不肯改变!!!!!!!!!!!!!
4 楼 aflyer 2011-05-07  
悲剧啊,悲剧!
3 楼 lifeier 2011-05-05  
jx822 写道
[quote="lifeier"]水平真够菜的。事务都是在spring中控制的。aop的方式控制的。你怎么学的java。

struts也可以控制事务,或者使用JTA,我指的是不用Spring的aop实现!

你这样,我还是要说你菜。还不服。不用spring,那么你总体的业务逻辑在哪里?在struts的action的话,可以用filter和拦截器实现类似aop的功能。真的不知道你怎么学的j2ee,比我这个培训过几个月的还菜。
2 楼 jx822 2011-05-05  
[quote="lifeier"]水平真够菜的。事务都是在spring中控制的。aop的方式控制的。你怎么学的java。

struts也可以控制事务,或者使用JTA,我指的是不用Spring的aop实现!
1 楼 lifeier 2011-05-05  
水平真够菜的。事务都是在spring中控制的。aop的方式控制的。你怎么学的java。

相关推荐

    自己封装的小框架--JDBC封装 Action层封装 手动事务管理

    本项目中,"自己封装的小框架--JDBC封装 Action层封装 手动事务管理"是一个实用的实践案例,旨在提高开发效率,优化代码结构,并确保数据操作的完整性。下面我们将深入探讨这个框架中的主要组成部分及其相关知识点。...

    基于Hyperf框架的TCC分布式事务组件.zip

    1. **TCC Action**:每个TCC事务由一组TCC动作组成,每个动作对应一个服务方法,分别实现Try、Confirm和Cancel功能。这些方法通常在服务类中定义,服务类需要实现特定的TCC接口。 2. **Transaction Manager**:事务...

    C#自己实现AOP的事务操作

    这个特性可以包含关于事务的配置信息,如隔离级别、是否只读等。下面是一个简单的示例: ```csharp using System; using System.Transactions; [AttributeUsage(AttributeTargets.Method)] public class ...

    spring,struts,hibernate,事务配置

    虽然Struts 2本身并不直接处理事务,但可以通过Action代理或拦截器来集成Spring的声明式事务。在Action类中,使用Spring的@Transactional注解标记需要进行事务控制的方法。 4. **Hibernate 事务管理** Hibernate...

    带事务的ssh框架源代码

    它通过Action类来接收和处理用户的请求,但并不直接涉及事务管理。在Struts中,事务管理通常由业务逻辑层(Service层)处理,而Spring框架在此起到了关键作用。 Spring作为一个全面的轻量级容器,提供了强大的依赖...

    TiDB in action.pdf 介绍Tidb原理和最佳实践

    《TiDB in Action》这本书是关于TiDB数据库的深度解析和实践经验分享,旨在帮助读者理解TiDB的核心原理和最佳操作实践。TiDB是一款分布式NewSQL数据库,设计目标是支持在线事务处理(OLTP)和在线分析处理(OLAP)混合...

    在SSH框架中加入事务支持

    在加入事务支持的过程中,Struts并不直接参与事务管理,但可以通过Action类的Service注入来调用Spring管理的事务方法。 总结来说,SSH框架中的事务支持主要由Spring提供,通过声明式或编程式的方式实现。Spring 2.0...

    spring3 struts2 Mybatis3 组件注解 事务注解 实例

    本文将深入探讨这些组件以及注解和事务管理在实际项目中的应用。 Spring框架是Java企业级应用开发的核心组件,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在Spring 3版本中,注解的引入极大地简化了配置...

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    结合Ibatis,我们可以创建一个Action类,注入Service,Service再注入Dao,其中Dao使用Ibatis的SqlSession进行数据库操作。Struts2的拦截器可以与Spring的AOP配合,实现如权限控制等功能。在配置文件中,需要配置...

    In Action系列技术书籍

    "Restlet in Action"是一本关于RESTful架构风格的开发书籍。REST(Representational State Transfer)是一种轻量级的互联网软件架构风格,广泛应用于Web服务和API设计。书中可能详细阐述了REST的基本原则,如URI设计...

    Spring in action 2nd

    ### Spring in Action 第二版 —— 详尽解析与学习指南 #### 一、书籍概述 《Spring in Action》第二版是一本深受开发者喜爱的技术书籍,由Craig Walls和Ryan Breidenbach共同撰写,并由Manning出版社出版。这本书...

    struts2.3+spring3.2+mybatis3.1整合注释行事务处理(含jar包)

    在这个项目中,我们看到的是一个基于Struts2.3、Spring3.2和MyBatis3.1的集成应用,其中使用了注释式的事务管理。 首先,让我们来详细了解一下这三个框架: 1. **Struts2**:这是一个基于MVC设计模式的Java Web...

    Spring+Struts+ibatis下配置数据读写分离及事务(一)

    在数据读写分离的场景下,Struts可以配合Spring进行事务控制,通过Action的配置来决定事务的边界。例如,一个Action可能对应一个数据库的写操作,另一个Action则负责多个读操作。这样,Struts可以在Spring的事务管理...

    Spring in Action 第四版英文原版+源码

    《Spring in Action》第四版是关于Spring框架的一本权威指南,由Manning出版社出版。这本书深入浅出地介绍了如何使用Spring框架构建强大的Java应用程序。英文原版提供了最原始的作者见解和技术细节,对于想要深入...

    spring in action 第二版中文版

    7. **最佳实践**:作者在书中分享了大量关于Spring的使用经验和最佳实践,帮助读者避免常见的陷阱,提升开发效率。 8. **版本更新**:第二版针对Spring框架的最新版本进行了更新,确保读者可以学习到最新的特性和...

    Spring In Action中文 第八部分

    ·声明式事务与事务管理; ·与其他Web框架集成:Struts、WebWork、Tapestry、Velocity; ·访问J2EE服务,如JMS和EJB; ·使用AOP解决交叉问题; ·企业组应用系统最佳实践。 “……一种解释...

    Spring In Action中文 第五部分

    ·声明式事务与事务管理; ·与其他Web框架集成:Struts、WebWork、Tapestry、Velocity; ·访问J2EE服务,如JMS和EJB; ·使用AOP解决交叉问题; ·企业组应用系统最佳实践。 “……一种解释...

    spring in action 中文版6-11.zip

    《Spring in Action》是关于Spring框架的一本权威指南,它深入浅出地介绍了Spring的核心概念和技术,涵盖了从基础到高级的各个层面。该书的中文版6-11章节主要涉及了Spring框架的关键特性和实战应用,以下是这些章节...

Global site tag (gtag.js) - Google Analytics