How to inject ApplicationContext itself

2019-01-10 20:13发布

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?

3条回答
Animai°情兽
2楼-- · 2019-01-10 20:30

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" />
查看更多
你好瞎i
3楼-- · 2019-01-10 20:32

Yes, just implement the ApplicationContextAware -interface.

查看更多
对你真心纯属浪费
4楼-- · 2019-01-10 20:54

Previous comments are ok, but I usually prefer:

@Autowired private ApplicationContext applicationContext;
查看更多
登录 后发表回答