在我的java類,我有:
@Autowired
@Qualifier("customerProviderExec")
private DefaultCustomerProvider customerProvider;
在我的上下文配置XML
<bean id="customerProviderExec" class="my.package.DefaultCustomerProviderExecutor">
<property name="defaultCustomerProviderService" ref="customerProviderImpl" />
</bean>
<bean id="testCustomerProviderImpl" class="my.package.DefaultCustomerProviderTest">
<property name="customerProviderImpl" ref="customerProviderImpl" />
</bean>
<bean id="customerProviderImpl" class="my.package.DefaultCustomerProviderImpl">
...
</bean>
重要:DefaultCustomerProviderImpl類實現DefaultCustomerProvider
當我嘗試在我的Java類中執行時:
DefaultCustomerProviderExecutor executor = (DefaultCustomerProviderExecutor)this.getCustomerProvider();
return (DefaultCustomerProviderImpl) executor.getDefaultCustomerProviderService();
我得到的錯誤:
產生的原因:java.lang.ClassCastException:$ Proxy17不能轉換到my.package.DefaultCustomerProviderImpl
已經有人已經通過量呢?
您可能使用AOP來執行一些橫切關注。檢查接受的答案在這裏:http://stackoverflow.com/questions/3852564/abstract-dao-pattern-and-springs-proxy-cannot-be-cast-to-problem – 2012-02-01 14:15:35
謝謝!這幫助了我=) – user1143609 2012-02-01 17:07:53