问题描述:
我的BEAN是通过了事务代理,代理方式为SPRING AOP形式的代理.
当SPRING容器 注入我需要的对象时,只能以接口的形式注入.而我的需求是要获取这个对象的真实实现类这个对象.如果去除代理的配置,则可以获取我需要的真实的实现类对象,但是脱离了事务,也不是我需要的.
具体配置和代码:
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="mod*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="del*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="logicSave*">PROPAGATION_REQUIRED</prop>
<prop key="logicCreate*">PROPAGATION_REQUIRED</prop>
<prop key="logicDel*">PROPAGATION_REQUIRED</prop>
<prop key="logicUpdate*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 新版本 标准和规范基础数据处理 -->
<bean id="standardLibDAO" class="com.gdcn.dpm.ywgl.dao.impl.StandardLibDAOImpl" parent="baseDAO" />
<bean id="service_StandardLib" parent="txProxyTemplate">
<property name="target">
<bean class="com.gdcn.dpm.ywgl.service.impl.StandardLibServiceImpl">
<property name="standardLibDAO" ref="standardLibDAO" />
<property name="dao_CustomBaseHibernate" ref="standardLibDAO" />
</bean>
</bean>
注入的SET代码:
IStandardLibService service_StandardLib;
public void setService_StandardLib(IStandardLibService service_StandardLib) {
this.service_StandardLib = service_StandardLib;
}
//上面的代码能成功注入
StandardLibServiceImpl service_StandardLib;
public void setService_StandardLib(StandardLibServiceImpl service_StandardLib) {
this.service_StandardLib = service_StandardLib;
}
//上面的代码注入失败,报Failed to convert property value of type [$Proxy29] to required type [com.gdcn.dpm.ywgl.service.impl.StandardLibServiceImpl] for property 'service_StandardLib' 异常提示
请朋友们给点意见或建议.苦恼我一天了.
分享到:
相关推荐
**Spring 框架概述** Spring 是一个开源的 Java 应用框架,它以其轻量级、模块化和面向切...希望这篇入门笔记能为你开启 Spring 的探索之旅,欢迎在学习过程中发现错误或有任何疑问时,通过博主的博客进行交流和指正。
7. **最佳实践**:如何有效地组织项目结构,避免服务暴露过多,以及如何利用Spring的事务管理来处理服务调用中的错误。 8. **实例分析**:详细解释`SpringCXFService`和`SpringCXFClient`的代码逻辑,如何在Spring...
在本示例中,Spring可能用于配置bean,处理事务,并与其他两个框架进行集成。 【Struts2框架】 Struts2是经典的MVC(模型-视图-控制器)框架,用于构建Web应用程序。它提供了丰富的UI组件,动作和结果映射,以及...
主要包括Spring的IoC、AOP(注释注入、Schema注入、与AspectJ的集成、有接口和无接口的实现的界面编程)、中间数据访问层(编程事事务管理、声明式事务管理、与Hibernate的集成、与JDO的集成、与JTA的集成、纯Spring...
注意:不懂的可加V免费帮助解答疑问:V:GeorgeLQGJava面试题:包含了锁,高并发,基础等高频面试题Hash相同equals的值是否相同Spring的事务隔离级别有哪些,默认是什么Sping的代理有哪些Mysql默认的事务级别Java...
- **简介**:MySQL是一种关系型数据库管理系统,因其体积小、速度快、成本低等特点,在中小型企业中得到了广泛应用。 - **优势**: - 高性能:优化的SQL执行引擎使其具有较高的查询速度; - 易用性:支持多种操作...
4. **Spring框架**:IoC容器、AOP代理、事务管理、Spring Boot、Spring Cloud等相关概念。 5. **数据库**:SQL查询优化、事务隔离级别、索引原理、存储引擎的区别。 其次,C/C++面试的重点可能包含: 1. **内存...
《网上学习答疑系统》是一个基于Java技术开发的项目,旨在为用户提供在线学习过程中的疑问解答服务。这个系统不仅适用于毕业设计或课程设计,还可以实际运行并提供帮助。开发者分享了源代码,旨在促进学习和交流,...
RabbitMQ是一种广泛使用的开源消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,适用于多种编程语言,包括Java、Python、Ruby、PHP、.NET等。本教程将深入介绍如何在不同的操作系统上...
- **后端框架**:Spring Boot,作为Java领域内流行的应用程序框架之一,能够简化开发流程,提高效率。 - **数据库**:MySQL,拥有成熟的数据管理和事务处理能力,适用于本系统的数据存储需求。 - **服务器**:Nginx+...