2008-01-07

SPRING中关于事务代理的疑问

关键字: spring中关于事务代理的疑问
问题描述:
我的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' 异常提示


请朋友们给点意见或建议.苦恼我一天了.
评论
movingboy 2008-01-08
你这是用Spring 1.x风格的事务声明,Spring 2.x引入了新的声明方法,你查一下,看看有没有帮助
java_code 2008-01-08
不能让它给沉了,自己顶一下.
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

java_code
搜索本博客
博客分类
最近加入圈子
存档
最新评论