Angenommen, ich habe zwei Klassen Circle und Rectangle, die eine Schnittstelle namens Shape implementieren.
Und ich habe die folgende Klasse:
public class ObjectFactory {
@Autowired
@Qualifier("circle")
Shape shape;
.......
.......
.......
}
Was ich tun möchte, ist den @Qualifier zu entfernen und die Automatische Verkabelung von einer Bedingung abhängig zu machen (zum Beispiel, wenn die Bedingung wahr ist, fügen Sie Circle ein, wenn die Bedingung falsch ist, fügen Sie das Rechteck ein) oder die Verkabelung von einer Namenskonvention abhängig zu machen.
Gibt es eine Möglichkeit, das zu tun?
Lassen Sie mich erklären, wenn ich die @Qualifier-Anmerkung entferne, werde ich folgende Ausnahme erhalten:
org.springframework.beans.factory.NoSuchBeanDefinitionException:
Keine eindeutige Bean des Typs [com.app.objects.Shape] ist definiert:
erwartete einzelne übereinstimmende Bean, aber gefunden 2: [circle, rectangle]
Gibt es eine Möglichkeit, diese Ausnahme programmgesteuert zu behandeln, um eine bedingungsabhängige automatische Verkabelung zu haben?