栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud学习--OpenFeign使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud学习--OpenFeign使用

1.pom依赖
						
			       
			            io.github.openfeign
			            feign-httpclient
			       
			     
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

OpenFeign组成:Feign+Ribbon+Hystrix

2. 配置 2.1 开启注解(服务调用方)
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class OpenfeignApplication {

    public static void main(String[] args) {
        SpringApplication.run(OpenfeignApplication.class, args);
    }

}
2.2 新建一个服务接口包common-Api

创建一个接口类

@RestController
@RequestMapping("/test")
public interface TestApi {

    @GetMapping("/hello")
    public String sayHi();

    @GetMapping("/testMap")
    public Map getMap(@RequestParam("key") String key);

    @PostMapping("/testObj")
    public Person getPerson(@RequestBody Person person);
}
2.3 打包安装到服务提供方和服务调用方
   
            com.xjq.study
            common-api
            0.0.1-SNAPSHOT
        

服务提供方实现接口类 :

 */
@Component
public class TestController implements TestApi{

    @Override
    public String sayHi() {
        return "Hello~";
    }

    @Override
    public Map getMap(String key) {
        System.out.println(key);
        return Collections.singletonMap(key, "values");
    }

    @Override
    public Person getPerson(Person person) {
        return person;
    }
}

服务调用方继承接口

@FeignClient(value = "providers")  // value为服务提供方的服务组
public interface TestInterfaces extends TestApi{
}

服务调用方Controller:

@RestController
public class TestController {

    @Autowired
    TestInterfaces testInterfaces;

    @GetMapping("/test")
    public String getSayHi(){
        String s = testInterfaces.sayHi();
        return s;
    }

    @GetMapping("/testMap")
    public Map getTestMap(String key) {
        System.out.println("getTestMap-key:" + key);
        Map map = testInterfaces.getMap(key);
        return map;
    }

    @GetMapping("/testObj")
    public Person getPerson(@RequestParam("id") String id, @RequestParam("name") String name) {
        Person person = new Person(id, name);
        return  testInterfaces.getPerson(person);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/973648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号