一个接口有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){
略...
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步