运行时的弹簧选择 Bean 实现
2022-08-31 14:15:17
我正在使用带有注释的Spring Beans,我需要在运行时选择不同的实现。
@Service
public class MyService {
public void test(){...}
}
例如,对于Windows的平台,我需要,对于Linux平台,我需要。MyServiceWin extending MyService
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配置。