一个接口有2个不同的实现,如何Autowire某一个指定的实现

一个接口

public interface AServlce{

  public ADao getAId(Long id);

}

俩个实现

@Service("service")

public class AImpl implements AServlce{

  public ADao getAId(Long id){

    return new ADao();

  }

}

@Service("service1")

public class AImpl implements  AServlce{

  public ADao getAId(Long id){

    return new ADao();

  }

}

调用代码

@Controller

@RequestMapping("/")

public class AControl{

  @AutoWired

  AServlce aServlce;

  @RequestMapping("/")

  public void fun(HttpServletRequest request,HttpServletResponse response){

    略...

  }

}

这样是错误的,该接口不知道映射哪个实现类。所以用到@Qualifier注解。

@Controller

@RequestMapping("/")

public class AControl{

  @AutoWired

  @Qualifier("service")

  AServlce aServlce;

  @RequestMapping("/")

  public void fun(HttpServletRequest request,HttpServletResponse response){

    略...

  }

}

posted @ 2018-03-29 10:44  vlsion  阅读(2652)  评论(0编辑  收藏  举报