SpringCloud学习–基础–5.2.1–Feign–案例–服务调用
代码位置
https://gitee.com/DanShenGuiZu/learnDemo/tree/master/SpringCloud-learn/SpringCloud-learn/demo_service_invocation
1、环境准备
- 拷贝app_server01作为新项目app-feign
1.1、应用信息
2、代码
2.1、添加依赖
2.2、代码结构
2.3、代码
依赖
<!-- openfeign 依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
注解:开启Feign
//开启Feign
//扫描HelloService_FeignClient类
@EnableFeignClients(basePackageClasses = {HelloService_FeignClient.class})
public class AppFeign_Main {
public static void main(String[] args) {
SpringApplication.run(AppFeign_Main.class, args);
}
}
定义远程调用接口
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
//name:服务名称
//path:配置producer01服务的context-path
@FeignClient(name = "app-feign", path = "/af")
public interface HelloService_FeignClient {
@RequestMapping(value = "hello")
String hello();
@RequestMapping(value = "hello2")
String hello2(@RequestParam(value = "name") String name);
}
HelloController
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: HelloController
* @Description 请描述下该类是做什么的
* @Author feizhou
* @Date 2023/9/20 10:25
* @Verson 1.0
**/
@RestController
public class HelloController {
@Autowired
private HelloService_FeignClient helloService;
@RequestMapping(value = "hello")
public String hello() {
return "app-feign:你好";
}
@RequestMapping(value = "hello2")
public String hello2(String name) {
return "app-feign:你好:" + name;
}
/**
* feign测试地址
*/
@RequestMapping(value = "feign_hello")
public String feign_hello() {
return helloService.hello();
}
/**
* feign测试地址
*/
@RequestMapping(value = "feign_hello2")
public String feign_hello2(String name) {
return helloService.hello2(name);
}
}
3、测试