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

Comment trouver où Spring @Bean est injecté

PHPz
PHPzavant
2024-02-09 08:30:20778parcourir

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
        }
    }

}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer