How to inject ApplicationContext itself

2019-01-10 19:49发布

问题:

I want to inject an ApplicationContext itself to a bean.

Something like

public void setApplicationContext(ApplicationContect context) {
  this.context = context;
}

Is that possible in spring?

回答1:

Previous comments are ok, but I usually prefer:

@Autowired private ApplicationContext applicationContext;


回答2:

Easy, using the ApplicationContextAware interface.

public class A implements ApplicationContextAware {
  private ApplicationContext context;

  public void setApplicationContext(ApplicationContext context) {
      this.context = context;
  }
}

Then in your actual applicationContext you only need to reference your bean.

<bean id="a" class="com.company.A" />


回答3:

Yes, just implement the ApplicationContextAware -interface.