相关疑难解决方法(0)

Spring在运行时选择bean实现

我正在使用带有注释的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配置.

java spring spring-bean

40
推荐指数
6
解决办法
3万
查看次数

标签 统计

java ×1

spring ×1

spring-bean ×1