OpenFeign的使用

文章目录

cubemall-product

Blog.java

java 复制代码
package com.xd.cubemall.product.entity;



import lombok.Data;

@Data
public class Blog {
    private Long id;
    private String title;
    private String content;
    private String comment;
    private String mobile;
}

SearchFeignTest.java

java 复制代码
package com.xd.cubemall.feign;


import com.xd.cubemall.common.utils.R;
import com.xd.cubemall.product.CubemallProductApplication;
import com.xd.cubemall.product.entity.Blog;
import com.xd.cubemall.product.feign.SearchFeign;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = CubemallProductApplication.class)
public class SearchFeignTest {
    @Autowired
    private SearchFeign searchFeign;

    @Test
    public void testSayHello() {
        R r = searchFeign.sayHello("tom");
        System.out.println(r);
    }

    @Test
    public void testSayHello2() {
        R r = searchFeign.sayHello2("张三");
        System.out.println(r);
    }

    @Test
    public void testGetBlog() {
        Blog blog = new Blog();
        blog.setId(1l);
        blog.setTitle("hello");
        blog.setContent("world");
        R r = searchFeign.getBlog(blog);
        System.out.println(r);
    }

    @Test
    public void testGetBlog2() {
        Blog blog = new Blog();
        blog.setId(1l);
        blog.setTitle("hello");
        blog.setContent("world");
        R r = searchFeign.getBlog2(blog,"aaa");
        System.out.println(r);
    }

}

SearchFeign.java

java 复制代码
package com.xd.cubemall.product.feign;

import com.xd.cubemall.common.utils.R;
import com.xd.cubemall.product.entity.Blog;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient("cubemall-search")
public interface SearchFeign {

    @GetMapping("hello/{name}")
    R sayHello(@PathVariable("name") String name);

    @GetMapping("hello")
    R sayHello2(@RequestParam("name") String name);


    @PostMapping("/blog")
    public R getBlog(@RequestBody Blog blog);

    @PostMapping("/blog2")
    public R getBlog2(@RequestBody Blog blog, @RequestParam("name") String name);

    @GetMapping("/spuinfo/putonsale/{spuId}")
    R putOnSale(@PathVariable("spuId") Long spuId);
}

pom.xml

xml 复制代码
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

application.yml

yml 复制代码
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        ip: 127.0.0.1
  application:
    name: cubemall-product

HelloController.java

java 复制代码
package com.xd.cubemall.search.controller;


import com.xd.cubemall.common.utils.R;
import com.xd.cubemall.search.model.Blog;
import org.springframework.web.bind.annotation.*;

@RestController
public class HelloController {
    @GetMapping("hello/{name}")
    public R sayHello(@PathVariable String name) {
        return R.ok("hello" + name);
    }


    //http://localhost:8082/hello?name=lisi
    @GetMapping("hello")
    public R sayHello2(String name) {
        return R.ok("hello" + name);
    }

    @PostMapping("/blog")
    public R getBlog(@RequestBody Blog blog) {
        blog.setComment("接收到blog对象");
        blog.setMobile("111111");
        return R.ok(blog);
    }


    @PostMapping("/blog2")
    public R getBlog2(@RequestBody Blog blog, String name) {
        blog.setComment(name);
        blog.setMobile("222222");
        return R.ok(blog);
    }

}
相关推荐
J_liaty1 天前
OpenFeign微服务实战指南
微服务·云原生·架构·openfeign
J_liaty6 天前
RPC、Feign与OpenFeign技术对比详解
网络·网络协议·rpc·openfeign·feign
递归尽头是星辰9 天前
Dubbo vs OpenFeign:Spring Cloud Alibaba 生态下的 RPC 框架选型与迁移实战
dubbo·微服务架构·openfeign·微服务选型·rpc 框架·http 客户端
Roye_ack1 个月前
【微服务 Day2】SpringCloud实战开发(微服务拆分步骤 + Nacos注册中心 + OpenFeign + 微服务拆分作业)
java·spring cloud·微服务·nacos·openfeign
咖啡不甜不好喝1 个月前
SpringCloud之OpenFeign
spring cloud·openfeign
全靠bug跑1 个月前
Spring Cloud OpenFeign 实战三部曲:快速集成 · 连接池优化 · 客户端抽取
java·spring boot·openfeign
serendipity_hky1 个月前
【SpringCloud | 第5篇】Seata分布式事务
分布式·后端·spring·spring cloud·seata·openfeign
serendipity_hky2 个月前
【SpringCloud | 第2篇】OpenFeign远程调用
java·后端·spring·spring cloud·openfeign
失足成万古风流人物2 个月前
面试官问MyBatis/OpenFeign的原理?我手搓了个MyHttp怼回去!(反八股版)
mybatis·springboot·openfeign·动态代理
三口吃掉你3 个月前
微服务之OpenFeign、hystrix熔断降级、loadbalancer负载均衡
hystrix·微服务·负载均衡·openfeign