Mam następujących klas:Wybierz których realizacja wstrzykiwać przy starcie wiosną
public interface MyInterface{}
public class MyImpl1 implements MyInterface{}
public class MyImpl2 implements MyInterface{}
public class Runner {
@Autowired private MyInterface myInterface;
}
Co chcę zrobić, to zdecydować, podczas gdy aplikacja jest już uruchomiony (nie przy starcie), których stosowanie powinno stanowić wstrzyknięty do Runner
.
Więc idealnie coś takiego:
ApplicationContext appContext = ...
Integer request = ...
Runner runner = null;
if (request == 1) {
//here the property 'myInterface' of 'Runner' would be injected with MyImpl1
runner = appContext.getBean(Runner.class)
}
else if (request == 2) {
//here the property 'myInterface' of 'Runner' would be injected with MyImpl2
runner = appContext.getBean(Runner.class)
}
runner.start();
Jaki jest najlepszy sposób, aby osiągnąć ten cel?
Ten rodzaj celowość z MKOl i Dependency Injection. –
Czy korzystasz z konfiguracji XML lub skanowania komponentów? –
@ToddMurray Wszystkie adnotacje oparte, w ogóle nie XML. – kwh