Когда я вызываю getBean(name)
в BeanFactory
, я возвращаю экземпляр bean, определенный в контексте приложения. Однако, когда я снова вызываю getBean(name)
(с тем же именем), я получаю тот же экземпляр bean назад. Я понимаю, как это было бы желательно в некоторых (много?) Случаях, но как я могу сообщить BeanFactory
, чтобы дать мне новый экземпляр?
Пример конфигурации Spring (tersely... Я не упоминал многословия, но это должно получить точку):
<beans>
<bean id="beanA" class="misc.BeanClass"/>
</beans>
Пример Java:
for(int i = 0;i++;i<=1) {
ApplicationContext context = ClassPathXmlApplicationContext("context.xml");
Object o = context.getBean("beanA");
System.out.println(o.toString()); // Note: misc.BeanA does not implement
// toString(), so this will display the OOID
// so that we can tell if it the same
// instance
}
Когда я запускаю это, я получаю что-то вроде:
[email protected]
[email protected]
Обратите внимание, что оба имеют одинаковый OOID... так что это те же экземпляры... но мне нужны разные экземпляры.