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实例,特别是当Bean继承了FactoryBean时的区别。详细解释了使用ApplicationContext.getBean方法的不同方式及其影响。
895

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



