web-dev-qa-db-fra.com

Comment injecter ApplicationContext lui-même

Je veux injecter un ApplicationContext lui-même dans un bean.

Quelque chose comme

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

Est-ce possible au printemps?

59
mibutec

Les commentaires précédents sont corrects, mais je préfère généralement:

@Autowired private ApplicationContext applicationContext;
114
sinuhepop

Facile, en utilisant l'interface ApplicationContextAware.

public class A implements ApplicationContextAware {
  private ApplicationContext context;

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

Ensuite, dans votre contexte d'application réel, il vous suffit de référencer votre bean.

<bean id="a" class="com.company.A" />
38
Johan Sjöberg

Oui, implémentez simplement l'interface ApplicationContextAware .

12
esaj