一个接口有多个实现类,Controller方法中动态调用具体都实现类

mac2024-07-25  15

一个接口有多个实现类,Controller方法中动态调用具体都实现类

接口实现类1实现类2ControllerSystem.out.println输出结果

接口

public interface IDemoService { public String test(); }

实现类1

@Service("demoServiceImpl1") public class DemoServiceImpl1 implements IDemoService { @Override public String test() { System.out.println("实现类1"); return "实现类1"; } }

实现类2

@Service("demoServiceImpl2") public class DemoServiceImpl2 implements IDemoService { @Override public String test() { System.out.println("实现类2"); return "实现类2"; } }

Controller

@RequestMapping("demo") @RestController public class DemoController extends BaseController { @Autowired private Map<String, IDemoService> service; @RequestMapping(value="/test", method = RequestMethod.POST) @ResponseBody public Result test(@RequestBody String json) { //动态获取serviceImplName逻辑 String serviceImplName = "demoServiceImpl2"; //获取到具体的实现类 IDemoService iDemo = service.get(serviceImplName); String result = iDemo.test(); System.out.println("实现类输出结果:" + result); return null; } }

System.out.println输出结果

实现类输出结果:实现类2

最新回复(0)