Rumah  >  Artikel  >  Bagaimana untuk mencari tempat Spring @Bean disuntik

Bagaimana untuk mencari tempat Spring @Bean disuntik

PHPz
PHPzke hadapan
2024-02-09 08:30:20829semak imbas

Editor PHP Apple akan memperkenalkan kepada anda cara mencari lokasi suntikan Spring @Bean. Semasa proses pembangunan, kita selalunya perlu menggunakan suntikan pergantungan untuk mengurus penciptaan dan pemasangan objek. Rangka kerja Spring menyediakan anotasi @Bean untuk mengenal pasti bahawa objek yang dikembalikan oleh kaedah perlu diuruskan oleh bekas Spring. Tetapi kadangkala kita mungkin menghadapi situasi di mana kita perlu mencari lokasi suntikan tertentu Pada masa ini, kita perlu menggunakan beberapa teknik untuk mencari lokasi suntikan @Bean. Seterusnya, kami akan berkongsi beberapa kaedah untuk membantu anda mencari lokasi suntikan Spring @Bean dengan mudah.

Kandungan soalan

Saya sedang mengkonfigurasi kacang Spring, sebagai contoh:

@豆子 myService(): = MyService()

Adakah boleh tahu di mana kacang ini akan disuntik?

Saya cuba menggunakan BeanFactoryPostProcessor tetapi tidak ada kemungkinan sedemikian.

Satu-satunya penyelesaian yang terlintas di fikiran saya ialah mengulangi semua kacang dan menyemak parameter pembina melalui refleksi. Tetapi jika tidak terdapat berbilang kacang daripada jenis yang sama, nama parameter mungkin berbeza daripada nama kacang.

Penyelesaian

Anda boleh menggunakan antara muka pengesanan pergantungan

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

}

Atas ialah kandungan terperinci Bagaimana untuk mencari tempat Spring @Bean disuntik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam