0 0

SPRING进行事务管理简单问题15

我用SSH进行开发,使用SPRING代理STRUTS,我想进行HIBERNATE的事务管理,如果我显性进行事务管理,可以成功,但是在SPRING中配置事务就会出现异常,说无法创建bean。就是说我把事务管理的这段代码删除掉就异常了
我的SPRING配置如下
<!--下边是代理的struts的action-->
<bean name="/insert" class="com.yourcompany.struts.action.InsertAction">
<property name="myservice" ref="myservice"></property>
</bean>
<!--下边是DAO类-->
<bean name="myservice" class="dao.MyServiceImp">
<property name="managerimp" ref="managerimp"></property>
</bean>
<bean name="managerimp" class="dao.ManagerImp">
<property name="sessionFactory" ref="hibernatefactory"></property>
</bean>
<!--下边是hibernate的sessionfactory-->
<bean name="transaction" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="hibernatefactory"></property>
</bean>
<!--下边是事务管理-->
<bean name="interceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transaction"></property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>myservice</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>interceptor2</value>
</list>
</property>
</bean>

异常如下:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/insert' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy3] to required type [dao.MyServiceImp] for property 'myservice'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy3] to required type [dao.MyServiceImp] for property 'myservice': no matching editors or conversion strategy found
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessException details (1) are:
PropertyAccessException 1:
org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy3] to required type [dao.MyServiceImp] for property 'myservice'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy3] to required type [dao.MyServiceImp] for property 'myservice': no matching editors or conversion strategy found
Caused by: java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy3] to required type [dao.MyServiceImp] for property 'myservice': no matching editors or conversion strategy found

我的理解是无法进行类型转化导致无法创建/insert找个bean,但是我没有进行类型转换啊,而且我不加事务处理的时候运行都很正常
2008年6月12日 10:07

2个答案 按时间排序 按投票排序

0 0

采纳的答案

从dao.MyServiceImp抽象一个接口dao.IMyService,
修改com.yourcompany.struts.action.InsertAction的下列方法:

public void setMyservice(IMyService service){
  //your code
}

因为BeanNameAutoProxyCreator创建的是动态代理,必须在接口上创建。

2008年6月13日 18:28
0 0

享受下音乐吧


2008年6月13日 23:15

相关推荐

    Spring事务管理Demo

    在压缩包中的Spring事务管理练习,你可以尝试创建一个简单的示例,例如模拟两个银行账户转账的过程,通过开启事务确保转账的原子性,即转账操作要么全部成功,要么全部失败。这样可以帮助你更好地理解Spring事务管理...

    spring 自定义事务管理器,编程式事务,声明式事务@Transactional使用

    在Spring框架中,事务管理是核心功能之一,它确保了数据操作的一致性和完整性。本教程将深入探讨如何在Spring中实现自定义事务管理器...这将加深你对Spring事务管理的理解,帮助你在实际项目中更加熟练地运用这些技术。

    Spring的事务管理小案例

    在本文中,我们将深入探讨Spring框架中的事务管理。Spring是一个广泛应用的Java企业级应用开发框架,它提供...如果你想要深入了解,可以参考提供的博客链接或其他相关资料,进一步学习Spring事务管理的细节和最佳实践。

    Spring事务管理开发必备jar包

    本资源包提供了进行Spring事务管理开发所需的所有关键库,包括框架基础、核心组件、AOP(面向切面编程)支持、日志处理、编译工具以及与数据库交互的相关jar包。下面将对这些知识点进行详细解释: 1. **Spring框架*...

    spring 事务管理的理解

    Spring 框架是Java开发中...理解并熟练掌握Spring事务管理,对于提升应用程序的稳定性和可靠性至关重要。在实际开发中,结合声明式事务管理、事务传播行为、隔离级别和回滚规则,可以有效地确保数据的完整性和一致性。

    spring hibernate 事务管理学习笔记(一)

    在实际开发中,理解这部分源码有助于我们更深入地掌握Spring事务管理的工作原理。 至于工具,开发者可以使用诸如IntelliJ IDEA这样的IDE,其中集成的调试工具可以帮助我们跟踪代码执行流程,查看事务状态的变化,...

    Spring事务管理的jar包

    总的来说,Spring事务管理通过`spring-tx-3.2.0.RELEASE.jar`为开发者提供了强大且灵活的事务处理能力,无论是在简单应用还是复杂的分布式系统中,都能有效地确保数据的一致性。了解并熟练掌握Spring事务管理,对于...

    Spring 事务简单完整例子

    本文将深入探讨在Spring框架中如何管理事务,以“Spring 事务简单完整例子”为出发点,结合标签“spring,事务,jdbc事务”,我们将详细解释Spring事务管理的原理和实践。 首先,Spring提供了两种事务管理方式:编程...

    Spring事务管理失效原因汇总

    标题“Spring事务管理失效原因汇总”指出了本文的核心内容是分析在使用Spring框架进行事务管理时可能遇到的问题及其原因。描述部分进一步说明了事务失效的后果往往不明显,容易在测试环节被忽略,但在生产环境中出现...

    spring_如何管理事务的

    #### 一、Spring事务管理概述 Spring框架为开发者提供了一套强大的事务管理机制,它简化了应用程序中的事务控制逻辑,使得开发人员能够更加专注于业务逻辑的编写,而不是繁琐的事务管理代码。Spring支持两种类型的...

    全面分析_Spring_的编程式事务管理及声明式事务管理

    你可以创建一个简单的 Spring 应用,配置事务管理器,并在业务层使用 @Transactional 注解或 TransactionTemplate 进行事务控制,以加深理解和应用。 总的来说,Spring 的事务管理机制提供了强大而灵活的支持,无论...

    spring事务管理

    为了更好地理解Spring事务管理的实际应用,可以通过以下简单的例子进行演示: ```java @Service public class AccountService { @Autowired private AccountRepository accountRepository; @Transactional...

    Spring自定义切面事务问题

    声明式事务管理通常更受欢迎,因为它可以通过简单的配置实现,而无需编写额外的代码。 2. **Spring 自定义切面事务失效的原因** - 当我们创建自定义切面并通过`@Aspect`注解将其标记为切面时,如果没有正确地处理...

    spring事务与数据库操作

    ### Spring事务与数据库操作 #### 一、Spring的声明式事务管理 在现代软件开发中,事务处理是非常关键的一部分,特别是在涉及多个数据操作时。Spring框架提供了强大的事务管理能力,可以方便地集成到应用程序中。...

    springtransaction 事务管理

    声明式事务管理简单且易于维护,适合大多数企业级应用。 3. **事务的隔离级别**: Spring支持数据库的四种隔离级别:READ UNCOMMITTED(读未提交)、READ COMMITTED(读已提交)、REPEATABLE READ(可重复读)和...

    spring 简单实例 事务回滚

    总之,这个“spring简单实例 事务回滚”案例为我们提供了一个学习Spring事务管理的好起点。通过理解如何配置事务管理器,使用`@Transactional`注解,以及异常处理机制,我们可以更好地掌握Spring如何保证数据的一致...

    Spring Nested事务简单案例

    在Spring框架中,事务管理是核心功能之一,它允许开发者以声明式或编程式的方式处理事务边界。在本案例中,我们关注的是Spring中的Nested事务,这是一个相对复杂的特性,但非常有用,特别是在需要子事务处理的场景下...

    Spring事务与Java事务比较

    总结来说,Spring 框架的事务管理与 Java 原生的事务管理相比,具有更高的抽象层次和更好的可配置性,使得事务管理更加简单和高效。通过 Spring 的 IOC 容器和 AOP 机制,开发者可以更专注于业务逻辑的实现,而将...

    spring事务管理.rar

    Spring事务管理是Spring框架的核心特性之一,它提供了一种强大且灵活的方式来管理应用程序中的事务边界。在企业级Java应用中,事务处理是确保数据一致性、完整性和可靠性的关键部分。本篇文章将深入探讨Spring的事务...

Global site tag (gtag.js) - Google Analytics