前言
小編在Spring Cloud項目中,需要調用一個第三方服務,在調用過程中,遇到了兩個問題,在這篇部落格中做一個分享。
pom.xml導入第三方服務
一、直接導入第三方服務jar包
<!--培養計劃服務-->
<dependency>
<groupId>com.dmsdbj.cloud</groupId>
<artifactId>integral-training-api</artifactId>
<version>0.0.3-SNAPSHOT</version>
</dependency>
二、出現錯誤頁面
三、添加exclusion标簽,解決問題
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</exclusion>
</exclusions>
最終導入第三方服務,完整内容:
<dependency>
<groupId>com.dmsdbj.cloud</groupId>
<artifactId>integral-training-api</artifactId>
<version>0.0.3-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</exclusion>
</exclusions>
</dependency>
備注:<exclusion>作用是排除一些不需要同時下載下傳的依賴jar,因為maven引用的library會将library裡面引用的jar也一起打包進來, 這樣的話免得了會引起相同jar的版本沖突。
項目啟動報錯
一、報錯如圖所示
A component required a bean of type 'com.dmsdbj.integral.training.api.facade.TrainingProgramApi'
that could not be found.
二、解決方案,添加掃描包
在spring boot啟動的主程式中,加入調用第三方服務的掃描包:com.dmsdbj.integral.training.api
@EnableFeignClients(basePackages = {"com.dmsdbj.activiti.api","com.dmsdbj.integral.training.api"})
完整的主程式代碼:
@EnableEurekaClient
@EnableDiscoveryClient
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan("com.tfjybj.intern.provider.dao")
@Import(FdfsClientConfig.class)
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
@EnableFeignClients(basePackages = {"com.dmsdbj.activiti.api","com.dmsdbj.integral.training.api"})
public class InternApplication {
public static void main(String[] args) {
SpringApplication.run(InternApplication.class, args);
}
}
小結
通過網上查詢解決方案,逐漸解決遇到的問題,歸根結底是自己對于注解、spring boot架構、maven的使用方面有所欠缺,這些都是基礎知識,不斷補充吧!
感謝您的通路!