在我的SpringCloud專欄中已經(jīng)介紹過SpringCloud五大組件的環(huán)境搭建,各個環(huán)境的搭建都有詳細的步驟講解,之前我們說過各個服務搭建都是不依賴于之前的環(huán)境的,本節(jié)介紹的Feign服務間遠程調(diào)用也是,本次也是側重于環(huán)境搭建,F(xiàn)eign的作用我們之前已經(jīng)介紹過了??梢圆榭矗?3.SpringCloud服務間遠程調(diào)用
一、Feign作用
可以實現(xiàn)RestFul風格遠程服務之間的調(diào)用。在我們之前搭建的Eureka服務中有一個消費者,當時使用RestTemplate進行服務調(diào)用的。現(xiàn)在我們改用Fegin進行服務調(diào)用。
二、項目實戰(zhàn)
在之前的consumer-server
模塊中進行feign遠程服務間的調(diào)用。
1. 引入依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2. 創(chuàng)建feign接口
@FeignClient("userservice")
public interface UserServiceClient {
@GetMapping("/user/login")
String login();
}
@GetMapping("/user/login")
調(diào)用了userservice服務,通過userservice服務名訪問需要服務注冊到服務注冊中心eureka上,如果沒有服務注冊中心,我們發(fā)起服務是通過localhsot:8082/user/login
3. 啟動注解
在啟動類添加注解開啟Feign的功能:@EnableFeignClients
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class ConsumerServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerServerApplication.class, args);
}
}
4. 服務調(diào)用
@RestController
@RequestMapping("order")
public class OrderController {
@Resource
private UserServiceClient userServiceClient;
@GetMapping("/info")
public String getOrderInfo() {
String info = userServiceClient.login();
return "訂單滴滴:" + info;
}
}
現(xiàn)在我們通過userServiceClient.login()
就可以通過Feign調(diào)用遠程服務了。文章來源:http://www.zghlxwxcb.cn/news/detail-798737.html
為什么添加了@FeignClient(“userservice”)的類會注冊到Spring容器中,這個注解并不是@Component的派生注解?
當使用@FeignClient注解標記一個接口時,Spring會自動為該接口生成一個代理對象,并將其注冊到Spring容器中。這個代理對象在運行時會攔截對接口方法的調(diào)用,并通過底層的HTTP客戶端(如Apache HttpClient、OkHttp等)發(fā)起HTTP請求,最終完成遠程服務的調(diào)用。文章來源地址http://www.zghlxwxcb.cn/news/detail-798737.html
到了這里,關于搭建feign遠程調(diào)用環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!