Ich arbeite an einer Spring-Anwendung und für eines meiner Szenarien musste ich zwei Implementierungen einer Service-Klasse schreiben. Ich würde gerne wissen, wie man dies in einer Service-Schicht basierend auf der Service-ID zur Laufzeit autowire.Wie kann ich eine Autowired-Eigenschaft mit einer Variablen qualifizieren
@Autowired
ProductPricing accessProduct;
public static void main(String args[])
{
long productId = serviceDao.getService(site.getSiteID()).getServiceId();
accessProduct.calculatePrice(pricingParam)
}
public class PricingManager1 implements ProductPricing
{
public void calculatePrice(Parmeter pricingParam) {}
}
public class PricingManager2 implements ProductPricing
{
public void calculatePrice(Parmeter pricingParam) {}
}
Nun wird abhängig von der productId entweder die Methode auf PricingManager1 oder PricingManager2 aufgerufen. Wie erreiche ich das dynamisch? Wenn ich die Service-Klassen mit Qualifier autowire, gibt es irgendeine Möglichkeit, wie wir die Runtime productId als Quifier in der Hauptklasse weitergeben können?
ok, danke ... aber gibt es einen Weg, das gleiche über den variablen Autowiderstand zu erreichen? – user2753694