|
From: <jue...@we...> - 2003-11-05 08:07:46
|
Cameron, =20 Good point: I've just added a check to ListableBeanFactoryImpl's = preInstantiateSingletons method to ignore FactoryBeans that return = isSingleton=3Dfalse. I'm also inclined to agree that adding some = "lazy-init" argument to the "bean" tag would make sense. =20 Juergen =20 ________________________________ Von: spr...@li... im Auftrag = von Cameron Braid Gesendet: Mi 05.11.2003 05:26 An: spr...@li... Betreff: [[W3-SPAM]] - Re: [Springframework-developer] Singelton = FactoryBeans are asked for an object before beanFactor.getBean(name) is = called by application - Email found in subject Colin Sampaleanu wrote: > This is happening because AbstractApplicationContext foreces > singletons (which includes your FactoryBean) to be pre-instantiated. > This essentially calls getBean() on the bean, which ends up calling > getObject(). > > Coincidentally, just a few days ago I asked here why singletons were > always preinstantiated, with no ability to turn off this behaviour, > but nobody commented... It probably makes sense to be able to turn > this off for specific beans. > I agree. Wouldn't it make sense to not preinstantiate FactoryBeans that aren't singeltons (FactoryBean.isSingelton()=3Dfalse) since this initial = instance will be disposed of anyway. Thanks, Cameron. > Regards, > Colin > > Cameron Braid wrote: > >> I have a FactoryBean that is a singleton. It is a prototype factory >> (is that correct terminoligy?) >> >> When the application context initialized, the FactoryBean.getObject() >> is being called before I call getBean() from my application. >> >> The problem is that the contract for BeanFactory.getObject() states >> that it shoud never be null. >> >> /** >> * Return an instance (possibly shared or independent) of the = object >> * managed by this factory. As with a BeanFactory, this allows >> * support for both the Singleton and Prototype design pattern. >> * @return an instance of the bean *(should never be null)* >> * @throws Exception in case of creation errors >> */ >> Object getObject() throws Exception; >> >> Though in my application, I can't gaurantee this. I am relying on >> source of information that doesn't exist until a servlet call is = made. >> >> How come this happens, and is it necessary to create an instance that >> gets thrown away ? >> >> Cheers >> >> Cameron > > > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us help > YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > -- Any damn fool can write code that a computer can understand... The trick is to write code that humans can understand. [Martin Fowler = http://www.martinfowler.com/distributedComputing/refactoring.pdf] ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |