1. 程式人生 > 程式設計 >SpringBoot同一介面多個實現類配置的例項詳解

SpringBoot同一介面多個實現類配置的例項詳解

SpringBoot專案中可能出現一個介面有多個實現類的情況,如果不進行配置,注入介面時編譯器不知道要注入哪個實現類就會報錯,因此需要進行配置。以下進行舉例:

介面如下:

public interface NoticeService {
  public String noticeUser(Long id);
}

兩個實現類如下:

@Service
public class NoticeServiceImpl1 implements NoticeService {
	public String noticeUser(Long id){
		return noticeServe1(id);
	}
}
@Service
public class NoticeServiceImpl2 implements NoticeService {
	public String noticeUser(Long id){
		return noticeServe2(id);
	}
}

Controller如下:

@Controller
@RequestMapping("notice")
public class NoticeController{
	@Autowired
	NoticeService noticeService;
}

這樣直接啟動後就會報錯,需要在新增@Qualifier註解:

@Controller
@RequestMapping("notice")
public class NoticeController{
	@Autowired
	@Qualifier("impl1")
	NoticeService noticeService;
}

需要呼叫的實現類中新增標識:

@Service("impl1")
public class NoticeServiceImpl1 implements NoticeService {
	public String noticeUser(Long id){
		return noticeServe1(id);
	}
}

此時再執行即可

到此這篇關於SpringBoot同一介面多個實現類配置的文章就介紹到這了,更多相關springboot多個實現類配置內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!