1、註解
<!--nacos 服務註冊發現-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--OK http 的依賴 -->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
</dependency>
下面這兩個依賴寫在api的包下,其中loadbalancer寫完了之後,它會自動配置 Spring Cloud LoadBalancer 的客戶端負載均衡器,使得應用程式可以無縫地使用負載均衡功能。
<!--openFeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--負載均衡器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
2、com.twinkle.api.config
該資料夾下寫OpenFeign配置類
import feign.Logger;
import org.springframework.context.annotation.Bean;
public class DefaultFeignConfig { // 千萬不要在這個類上面加@Configuration註解,因為這個配置類會在其它啟動類上的註解引用
@Bean
public Logger.Level feignLogLevel() {
return Logger.Level.BASIC;
}
}
同時在啟動類上註明@EnableFeignClients(basePackages = "com.twinkle.api.clients", defaultConfiguration = DefaultFeignConfig.class)
(啟用OpenFeignClients,寫明clients包所在目錄,寫明OpenFeign的配置類)
3、編寫com.twinkle.api.clients
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Collection;
@FeignClient("cart-service")
public interface CartClient {
@DeleteMapping("/carts")
void deleteCartItemByIds(@RequestParam("ids") Collection<Long> ids); // 呼叫其它服務的controller層的方法
}