Maison > Java > Comment trouver où Spring @Bean est injecté

Comment trouver où Spring @Bean est injecté

PHPz
Libérer: 2024-02-09 08:30:20
avant
834 Les gens l'ont consulté

L'éditeur PHP Apple vous présentera comment trouver l'emplacement de l'injection Spring @Bean. Au cours du processus de développement, nous devons souvent utiliser l'injection de dépendances pour gérer la création et l'assemblage d'objets. Le framework Spring fournit l'annotation @Bean pour identifier que l'objet renvoyé par une méthode doit être géré par le conteneur Spring. Mais parfois, nous pouvons rencontrer une situation où nous devons trouver le lieu d'injection spécifique. À ce stade, nous devons utiliser certaines techniques pour localiser le lieu d'injection @Bean. Ensuite, nous partagerons plusieurs méthodes pour vous aider à trouver facilement l’emplacement de l’injection Spring @Bean.

Contenu de la question

Je configure un bean Spring, par exemple :

@豆子 amusant myService() : = MyService()

Est-il possible de savoir où ce grain sera injecté ?

J'ai essayé d'utiliser BeanFactoryPostProcessor mais cette possibilité n'existe pas.

La seule solution qui me vient à l'esprit est de parcourir tous les beans et de vérifier les paramètres du constructeur via la réflexion. Mais s'il n'y a pas plusieurs beans du même type, le nom du paramètre peut être différent du nom du bean.

Solution

Vous pouvez utiliser l'interface de détection de dépendances

@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext run = SpringApplication.run(TestApplication.class, args);
        for (String bean: run.getBeanFactory().getDependentBeans("myService")) {
            System.out.println(bean);//the bean injected myService
        }
    }

}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal