ApplicationContext ctx = new ClassPathXmlApplicationContext( "com/springinaction/springidol/spring-idol.xml"); Performer performer = (Performer) ctx.getBean("duke"); performer.perform();
In the above, when are the beans instantiated, when the ApplicationContext is created or when the getBean() is called?
Advertisement
Answer
Assuming the bean is a singleton, and isn’t configured for lazy initialisation, then it’s created when the context is started up. getBean()
just fishes it out.
Lazy-init beans will only be initialised when first referenced, but this is not the default. Scoped beans (e.g. prototype-scoped) will also only be created when first referenced.