récupérer Bean par programme
@Configuration
public class MyConfig {
@Bean(name = "myObj")
public MyObj getMyObj() {
return new MyObj();
}
}
J'ai cette Maconfig objet avec @Configuration de Printemps de l'annotation.
Ma question est que comment je peux récupérer le haricot par programme (dans une classe ordinaire)?
par exemple, l'extrait de code qui ressemble à ça.
Merci à l'avance.
public class Foo {
public Foo(){
//get MyObj bean here
}
}
public class Var {
public void varMethod(){
Foo foo = new Foo();
}
}
source d'informationauteur user800799
Vous devez vous connecter pour publier un commentaire.
Ici un Exemple
Cependant, vous aurez rarement besoin de l'accès ApplicationContext directement. En général, vous démarrez une seule fois et laissez les haricots remplir eux-mêmes automatiquement.
Ici, vous allez:
Notez que vous n'avez pas à mentionner les fichiers déjà inclus dans applicationContext.xml. Maintenant, vous pouvez simplement aller chercher un bean par nom ou par type:
Noter qu'il y a des tonnes de façons de début de Printemps à l'aide de ContextLoaderListener, @Configuration de la classe, etc.
Essayez ceci:
Le plus simple (mais pas le plus propre) approche si vous avez vraiment besoin de récupérer les haricots de la
ApplicationContext
est à votre classe de mettre en œuvre laApplicationContextAware
de l'interface et de fournir lessetApplicationContext()
méthode.Une fois que vous avez une référence à la
ApplicationContext
vous avez accès à de nombreuses méthodes qui retournent bean instances à vous.L'inconvénient est que cela rend votre classe au courant du Printemps contexte, que l'on doit éviter, sauf si nécessaire.