我正在使用带有注释的Spring Beans,我需要在运行时选择不同的实现.
@Service
public class MyService {
public void test(){...}
}
Run Code Online (Sandbox Code Playgroud)
例如对于我需要的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();
}
}
Run Code Online (Sandbox Code Playgroud)
请考虑我只使用注释而不是XML配置.