Issue
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?
Solution
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.
Answered By - skaffman
Answer Checked By - Clifford M. (JavaFixing Volunteer)