要在项目中添加声明式事务处理,但是由于开发前期没有很好的规划。很多业务都已经直接写在了action这一层了。service层几乎没写。所以就只有在action层添加事务了。但是添加的事务对于dispatchAction无效。查看代码发现,dispatchAction的所以方法都是通过execute()调用。而spring的声明式事务处理,是通过TransactionInterceptor类来进行拦截调用的。
java 代码
- public Object invoke(final MethodInvocation invocation) throws Throwable {
-
-
-
- Class targetClass = (invocation.getThis() != null ? invocation.getThis().getClass() : null);
-
-
- final TransactionAttribute txAttr =
- getTransactionAttributeSource().getTransactionAttribute(invocation.getMethod(), targetClass);
- final String joinpointIdentification = methodIdentification(invocation.getMethod());
-
- if (txAttr == null || !(getTransactionManager() instanceof CallbackPreferringPlatformTransactionManager)) {
-
- TransactionInfo txInfo = createTransactionIfNecessary(txAttr, joinpointIdentification);
- Object retVal = null;
- try {
-
-
- retVal = invocation.proceed();
- }
- catch (Throwable ex) {
-
- completeTransactionAfterThrowing(txInfo, ex);
- throw ex;
- }
- finally {
- cleanupTransactionInfo(txInfo);
- }
- commitTransactionAfterReturning(txInfo);
- return retVal;
- }
上面贴出的是主要的代码。可见它是通过对代理类的制定调用方法来进行事务管理。而dispatchAction的所以方法都是通过execute()调用。所以只有拦截其execute方法事务处理才有效。
分享到:
相关推荐
- Spring与Struts2集成,Spring可以作为Struts2的Action的依赖注入容器,通过Spring的ApplicationContext获取服务层对象,实现业务逻辑处理。 - Struts2与Hibernate集成,通常在Action中通过SessionFactory获取...
标题中的"Spring集成struts以及hibernate jar包"指的是在Java Web开发中,将Spring框架与Struts2和Hibernate框架进行整合的过程。这通常是为了构建一个完整的MVC(Model-View-Controller)架构,其中Spring负责依赖...
然而,Struts自身并不包含事务管理功能,它通常与Spring结合使用,由Spring来处理事务控制,从而让Struts专注于请求的路由和视图的呈现。 Hibernate 是一个对象关系映射(ORM)框架,它简化了数据库操作,将数据库...
本讲解将深入探讨如何将Spring集成到Struts中,以实现更好的控制反转(IoC)和面向切面编程(AOP)。 Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,主要用于处理HTTP请求和展示视图。它...
### Spring集成Struts与Hibernate详解 #### Spring集成Struts **背景介绍** 随着Java技术的发展,Struts作为最早的MVC框架之一,在Java EE领域中占据了重要地位。虽然随着时间的推移,新的框架和技术不断涌现,但...
本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与Spring及Struts2的集成。 首先,让我们来看一下“一对多”关系。在数据库设计中,一对多关系很常见,比如一个用户可以有多个订单。在Ibatis中,...
下面我们将详细探讨Spring与Struts1.2的整合集成及其核心概念。 1. **Spring框架介绍** Spring是一个全面的后端开发框架,包括了数据访问、事务管理、远程调用、AOP等模块。它通过DI和AOP简化了对象的创建和管理,...
7. **处理国际化和异常**:Spring提供了更强大的国际化和异常处理机制,可以将Struts的这些功能委托给Spring处理。 8. **事务管理**:Spring的事务管理器可以轻松地应用于Struts的Action,实现业务逻辑的事务边界...
首先,你需要在MySQL数据库中创建名为TEST的表,包含id和name两个字段,确保表引擎为InnoDB,因为InnoDB支持行级事务和外键约束,适合进行事务处理。 在项目配置中,你需要设置Spring的上下文配置,包括bean的定义...
Spring还提供了事务管理、数据访问抽象(包括JDBC、ORM集成)、Web MVC框架等模块,能够与Struts无缝集成,提供更高级别的控制反转和事务管理。 3. **Hibernate**: Hibernate是一个对象关系映射(ORM)框架,它...
这篇博客"Spring集成Struts、JSF、WebWork2"探讨了如何将这些框架与Spring进行整合,以构建更复杂、灵活的Web应用程序。 首先,让我们详细了解一下这三个框架: 1. **Struts**: Apache Struts 是最早的Java MVC...
集成Struts2、Spring和Hibernate时,需要注意配置文件的正确设置,包括Action配置、Spring Bean的定义、Hibernate的数据库连接和实体映射。同时,理解这三个框架的工作原理和相互作用,对于解决问题和优化代码至关...
同时,为了集成 Spring,需要配置 Struts2-Spring 插件,这样 Struts2 就能利用 Spring 管理的 Bean。 4. **Action 类**:Action 类通常作为 Struts2 处理请求的入口,它可以从 Spring 容器中注入所需的依赖。通过...
3. **Spring事务管理**:Spring提供了强大的事务管理能力,可以覆盖Struts中的事务处理,确保操作的原子性和一致性。 4. **Spring Security整合**:如果需要实现权限控制,可以使用Spring Security,它能够与Struts...
通过Action类和拦截器,可以实现与Spring的无缝集成,同时也可以利用Spring的缓存功能,将频繁访问的数据存储在Redis中。 3. **Hibernate框架**:Hibernate是Java领域的一个对象关系映射(ORM)框架,它简化了数据库...
Struts+Spring集成的主要目的是利用两者的优点,使开发更高效、维护更方便。在集成过程中,通常会用Spring来管理Struts中的Action类,实现Action的依赖注入,从而提高代码的可测试性和解耦性。下面将详细讲解这个...
4. **事务管理**:Mybatis可以与Spring集成,实现声明式事务管理,简化事务控制。 **Maven**: 1. **项目管理**:Maven通过pom.xml文件管理项目依赖,确保所有开发者使用的库版本一致。 2. **构建流程**:Maven提供...
Spring是一个全面的后端框架,涵盖了依赖注入、事务管理、AOP(面向切面编程)等多个方面,而Struts 2则主要负责MVC(模型-视图-控制器)架构中的控制层。这两者的整合使得开发者可以构建出更高效、可维护的企业级...
5. **处理异常**:Spring和Struts2都可以处理异常,集成时需要协调两者之间的异常处理策略。可以通过配置Spring的全局异常处理器和Struts2的全局结果来实现。 6. **事务管理**:Spring提供了强大的事务管理功能,...
2. 集成Struts:配置Struts2的配置文件(struts.xml),指定Action类及其映射,同时设置Spring插件,让Struts2能够利用Spring管理的bean。 3. 数据库连接:在Spring配置中添加数据源和事务管理器,配置MySQL的JDBC...