Spring在运行时选择bean的实现

14 浏览
0 Comments

Spring在运行时选择bean的实现

我正在使用带注释的Spring Beans,并且我需要在运行时选择不同的实现。

例如,对于Windows平台,我需要一个扩展MyService的MyServiceWin,对于Linux平台,我需要一个扩展MyService的MyServiceLnx。

目前,我只知道一个可怕的解决方案:

@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配置。

0