Heim  >  Artikel  >  So finden Sie heraus, wo Spring @Bean injiziert wird

So finden Sie heraus, wo Spring @Bean injiziert wird

PHPz
PHPznach vorne
2024-02-09 08:30:20829Durchsuche

PHP-Editor Apple zeigt Ihnen, wie Sie den Ort der Spring @Bean-Injektion finden. Während des Entwicklungsprozesses müssen wir häufig die Abhängigkeitsinjektion verwenden, um die Erstellung und Zusammenstellung von Objekten zu verwalten. Das Spring-Framework stellt die Annotation @Bean bereit, um zu erkennen, dass das von einer Methode zurückgegebene Objekt vom Spring-Container verwaltet werden muss. Aber manchmal kann es vorkommen, dass wir den spezifischen Injektionsort finden müssen. Zu diesem Zeitpunkt müssen wir einige Techniken verwenden, um den @Bean-Injektionsort zu lokalisieren. Als Nächstes stellen wir Ihnen verschiedene Methoden vor, mit denen Sie den Ort der Spring @Bean-Injektion leicht finden können.

Frageninhalt

Ich konfiguriere eine Spring Bean, zum Beispiel:

@豆子 Spaß myService(): = MyService()

Ist es möglich zu wissen, wo diese Bohne injiziert wird?

Ich habe versucht, BeanFactoryPostProcessor zu verwenden, aber es gibt keine solche Möglichkeit.

Die einzige Lösung, die mir in den Sinn kommt, besteht darin, alle Beans zu durchlaufen und die Konstruktorparameter per Reflektion zu überprüfen. Wenn jedoch nicht mehrere Beans desselben Typs vorhanden sind, unterscheidet sich der Parametername möglicherweise vom Bean-Namen.

Lösung

Sie können die Abhängigkeitserkennungsschnittstelle verwenden

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

}

Das obige ist der detaillierte Inhalt vonSo finden Sie heraus, wo Spring @Bean injiziert wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen