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.