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);
    }

}
相关推荐
Roye_ack10 小时前
【微服务 Day2】SpringCloud实战开发(微服务拆分步骤 + Nacos注册中心 + OpenFeign + 微服务拆分作业)
java·spring cloud·微服务·nacos·openfeign
咖啡不甜不好喝4 天前
SpringCloud之OpenFeign
spring cloud·openfeign
全靠bug跑10 天前
Spring Cloud OpenFeign 实战三部曲:快速集成 · 连接池优化 · 客户端抽取
java·spring boot·openfeign
serendipity_hky12 天前
【SpringCloud | 第5篇】Seata分布式事务
分布式·后端·spring·spring cloud·seata·openfeign
serendipity_hky17 天前
【SpringCloud | 第2篇】OpenFeign远程调用
java·后端·spring·spring cloud·openfeign
失足成万古风流人物22 天前
面试官问MyBatis/OpenFeign的原理?我手搓了个MyHttp怼回去!(反八股版)
mybatis·springboot·openfeign·动态代理
三口吃掉你2 个月前
微服务之OpenFeign、hystrix熔断降级、loadbalancer负载均衡
hystrix·微服务·负载均衡·openfeign
洛克大航海2 个月前
3-SpringCloud-LoadBalancer-OpenFeign服务调用与负载均衡
spring·spring cloud·负载均衡·openfeign·loadbalancer
whltaoin3 个月前
SpringCloud项目阶段五:openFeign服务接入以及接入腾讯云内容安全服务实现文章提交违规信息自动审核
spring cloud·腾讯云·openfeign·内容安全
勇往直前plus4 个月前
一文学习nacos和openFeign
java·学习·微服务·openfeign