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

So finden Sie heraus, wo Spring @Bean injiziert wird

PHPz
Freigeben: 2024-02-09 08:30:20
nach vorne
873 Leute haben es durchsucht

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

}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage