Sobes.tech
Middle

Wenn Beans über @Configuration und @Bean deklariert werden, wie funktioniert @Qualifier und wie lautet der Name des Beans?

sobes.tech KI

Antwort von AI

Wenn Beans über @Configuration und @Bean deklariert werden, erstellt Spring sie mit Namen, die dem Namen der Methode entsprechen, die den Bean zurückgibt. Zum Beispiel:

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

In diesem Fall ist der Name des Beans myService.

Die Annotation @Qualifier wird verwendet, um anzugeben, welches Bean genau injiziert werden soll, wenn im Kontext mehrere Beans desselben Typs vorhanden sind. Zum Beispiel:

@Bean
public MyService myService1() { ... }

@Bean
public MyService myService2() { ... }

@Autowired
@Qualifier("myService2")
private MyService service;

Hier weist @Qualifier Spring an, das Bean mit dem Namen myService2 zu injizieren.

Auf diese Weise funktioniert @Qualifier nach dem Namen des Beans, der standardmäßig mit dem Namen der Methode übereinstimmt, die den Bean deklariert, sofern nicht explizit ein anderer Name über den Parameter name in @Bean angegeben wird.