Posts

Showing posts with the label spring core

How to Inject Application Context to a bean in Spring?

Some times, we need to access the Application Context in a bean itself, for example, if you want to get another bean using Application Context. Injecting Application Context to a bean is easy, your bean just has to implement ApplicationContextAware interface, ApplicationContextAware interface has a single method, which has the signature like below. public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {         // TODO Auto-generated method stub   } you have to override this method, see the example below public class A implements ApplicationContextAware {      private ApplicationContext context;      public void setApplicationContext( ApplicationContext context)      {           this.context = context;      } } That's it, now you can play with Application Context.

Difference Between Application Context and Bean Factory in Spring

Image
Even though both are responsible for bean instantiation and wiring but there are some differences between them. Bean Factory Application Context Instantiate a bean when ever required. i.e Lazy Instantiation Pre instantiate all the beans at the time of container creation Doesn't support annotation based dependency injection Supports annotation based injection Doesn't publish events to listeners Application contexts can publish events to beans that are registered as listeners Doesn't provide support for internationalization i.e i18n supports internationalization Provides Basic IOC and DI (Dependency Injection) features Application Context provides advanced features such as JNDI access, EJB integration, remoting, along with IOC and DI