applicationContext.getBean()

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,cache)