日期:2014-05-18  浏览次数:20698 次

org.springframework.aop.framework.ProxyFactoryBean 求教!!
请教这个类的实例为什么可以这样:

Person person = (Person) factory.getBean("person");

其中Bean("person")就是实例于org.springframework.aop.framework.ProxyFactoryBean

Person和它之间仅有的关系是都有一个共同父类Object

所以我就搞不明白了,为什么可以强制类型转换?

求教!!
------解决方案--------------------
建议楼主去看下工厂模式,Person与ProxyFactoryBean没有什么必然关系,就像一个工厂生产手机,有些手机供应商就把手机模型等配置给工厂,工厂通过这些东西生产出三星、苹果等手机。工厂和三星、苹果没有必然关系。
org.springframework.aop.framework.ProxyFactoryBean它是spring生成bean的代理工厂,通过反射获取一个Object对象,从Object对象强转Person你应该可以理解了吧。。
------解决方案--------------------
任何对象间都可以强转的,只是在方法调用的时候,可能强转的对象没有目标方法。这个代理工厂Bean却可以做到强转的方法能够执行,是因为做了一些配置。
LZ可以参考这个AOP的解说,重点关注下配置文件里的target等:http://blog.csdn.net/udbnny/article/details/5870076