今天遇到spring 中 getBean的时候,不能转化成接口的实例类型:
spring 中的配置:
<bean id="userDao" class="com.test.UserDAOImpl"> </bean>
代码:
UserDAOImpl userDAO = (UserDAOImpl)ctx.getBean("userDao");
错误:java.lang.ClassCastException: $Proxy cannot be cast to com.test.UserDAOImpl
错误原因:
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Dao</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
用了动态代理,没有具体深入,记录下来。原因是: userDao没有实现接口