从spring 容器获得bean的问题
这时其中出错的一段代码:
applicationContext = ContextLoader.getCurrentWebApplicationContext();
1: Object object = applicationContext.getBean("roleService");
2:RoleServiceImpl roleService = (RoleServiceImpl)applicationContext.getBean("roleService");
运行到第一步的时候没问题可以找到名字为:roleService的bean;
到第二部时就出错了:
java.lang.ClassCastException: $Proxy3 cannot be cast to cn.edu.sjtu.telecom.scada.service.impl.RoleServiceImpl
如果不能强转得话,我得到这个bean就没什么意义了。
这时什么原因呢,如何可以转化为我想要的bean?
------解决方案--------------------Java code
// print
object.getClass();
------解决方案--------------------
针对接口的实现类或者类的子类
转换为接口或者父类来使用 代理的过程可以参考下以前写的篇文章跟动态代理有关系的
http://blog.csdn.net/zhouyuqwert/article/details/6827964
------解决方案--------------------
你看看bean的name为roleService对应的class类型是否是RoleServiceImpl,不是的话应该就没法转了!虽然返回的是object但是他本质应该是RoleServiceImpl。