一個接口有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