private static ApplicationContext ctx= new ClassPathXmlApplicationContext(
"spring/ws-client.xml");
private static Cache cache = (Cache) ctx.getBean("cache");
当bean继承spring 的FactoryBean时,
使用applicationContext.getBean(beanName)
得到的是bean的getObject方法的返回值,而不是bean本身。
此时需要的话请用
applicationContext.getBean('&'+beanName)将得到bean本身。而且使用
applicationContext.getBean(beanName)的时候bean的getObject只会调用一次,此后都是直接返回原先的对象,
使用applicationContext.getBean('&'+beanName)后再调用bean.getObject方法就可以多次调用bean.getObject方法体,从而改变返回对象的值
本文详细解释了在使用Spring框架时,当bean继承自FactoryBean时,使用ApplicationContext.getBean(beanName)与使用&+beanName的区别,以及如何在需要多次调用getObject方法时获取不同的对象实例。
900

被折叠的 条评论
为什么被折叠?



