Я использую Spring Beans с аннотациями, и мне нужно выбрать другую реализацию во время выполнения.
@Service
public class MyService {
public void test(){...}
}
Например, для платформы Windows мне нужно MyServiceWin extending MyService
, для платформы linux мне нужно MyServiceLnx extending MyService
.
Пока я знаю только одно ужасное решение:
@Service
public class MyService {
private MyService impl;
@PostInit
public void init(){
if(windows) impl=new MyServiceWin();
else impl=new MyServiceLnx();
}
public void test(){
impl.test();
}
}
Пожалуйста, учтите, что я использую только аннотацию, а не конфигурацию XML.