一个接口有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){

    略...

  }

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM