当前位置: 首页 > news >正文

OpenFeign的使用

文章目录

  • cubemall-product
    • Blog.java
    • SearchFeignTest.java
    • SearchFeign.java
    • pom.xml
    • application.yml
  • cubemall-search
    • HelloController.java

cubemall-product

Blog.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

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 {@Autowiredprivate SearchFeign searchFeign;@Testpublic void testSayHello() {R r = searchFeign.sayHello("tom");System.out.println(r);}@Testpublic void testSayHello2() {R r = searchFeign.sayHello2("张三");System.out.println(r);}@Testpublic void testGetBlog() {Blog blog = new Blog();blog.setId(1l);blog.setTitle("hello");blog.setContent("world");R r = searchFeign.getBlog(blog);System.out.println(r);}@Testpublic 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

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

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

application.yml

spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848ip: 127.0.0.1application:name: cubemall-product

cubemall-search

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

http://www.mrgr.cn/news/54316.html

相关文章:

  • EasyExcel填充模板导出excel.xlsx
  • 类型限定符(Type qualifier)
  • Flink窗口分配器WindowAssigner
  • 【某农业大学计算机网络实验报告】实验四 路由信息协议RIP
  • Java 中简化操作集合的方法
  • Vue项目兼容IE11
  • AI学习指南深度学习篇-自编码器的变种
  • 论文精读:PRL 交变磁MnTe中的手性分裂磁振子
  • 场景化运营与定制开发链动 2+1 模式 S2B2C 商城小程序的融合
  • 【74LS48译码器】2022-1-2
  • 每天5分钟玩转C#/.NET之goto跳转语句
  • C++ | Leetcode C++题解之第494题目标和
  • TCP与UDP
  • Java最全面试题->Java基础面试题->JavaWeb面试题->Filter/Listener面试题
  • 基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
  • Python 列表专题:列表可变性
  • 游戏投屏软件有哪些?分享这10款比较好用的!
  • Java ArrayList 深入解析
  • 思维导图怎么制作?这四款制作思维导图的软件值得推荐!
  • LLMS-Stable diffusion 报错 index out of bounds
  • 调整奇数偶数的顺序
  • 正则表达式 - 修饰符
  • 【C++贪心 单调栈】1727. 重新排列后的最大子矩阵|1926
  • 数据分箱:决策树得到特征的分箱区间后后怎么映射到原数据中?
  • cs61a涉及图像转换的代码注释(Lecture01)
  • 高效的多进程编程:使用 Python `multiprocessing` 库进行进程管理