spring练习中出现:
Exception in thread "main" java.lang.ClassCastException: $Proxy0
at test.spring.test.MainTest.main(MainTest.java:12)
解决方法就是用接口来接受获得的bean
package test.spring.test;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import test.spring.service.UserService;
import test.spring.service.impl.UserServiceImpl;
public class MainTest {
public static void main(String[] args) throws Exception {
XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("beans.xml"));
UserService userService = (UserService)factory.getBean("service");
userService.createUser("roundzheng", "123");
userService.createUser("dsfds", "fdsfsd");
userService.getPassword("roundzheng");
if(userService.readUser("roundzheng")) {
userService.deleteUser("roundzheng");
}
System.out.println("roundzheng's password is \"" + userService.getPassword("roundzheng") + "\""+userService.readUser("roundzheng"));
factory.destroySingletons();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="serviceTarget" class="test.spring.service.impl.UserServiceImpl" />
<bean id="logAdvisor" class="test.spring.service.aop.LogAdvisor" />
<bean id="service" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces"><value>test.spring.service.UserService</value></property>
<property name="target"><ref local="serviceTarget"/></property>
<property name="interceptorNames">
<list>
<value>logAdvisor</value>
</list>
</property>
</bean>
</beans>