首页 > 其他分享 >FeignClient【Feign】

FeignClient【Feign】

时间:2023-06-23 20:44:05浏览次数:27  
标签:FeignClient Feign hmall springframework item import com

(关键处)将商品微服务中的分页查询商品接口定义为一个FeignClient,放到feign-api模块中

1、@FeignClient 的名字为 application.yml 文件中的 application.name

2、@GetMapping 的路径为 ItemController 文件中的 @RequestMapping 路径 + 请求方式路径

package com.hmall.common.feign;

import com.hmall.common.dto.PageDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient("itemservice")
public interface ItemFeign {

    @GetMapping("/item/list")
    public PageDTO list(Integer page, Integer size);
}

 

item-service的application.yml

server:
  port: 8081
spring:
  application:
    name: itemservice
  datasource:
    url: jdbc:mysql://localhost:3306/hmall?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
mybatis-plus:
  type-aliases-package: com.hmall.item.pojo
  configuration:
    map-underscore-to-camel-case: true
  global-config:
    db-config:
      update-strategy: not_null
      id-type: auto
logging:
  level:
    com.hmall: debug
  pattern:
    dateformat: HH:mm:ss:SSS

 

ItemController

package com.hmall.item.web;

import com.hmall.common.dto.PageDTO;
import com.hmall.item.service.IItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("item")
public class ItemController {

    @Autowired
    private IItemService itemService;

    /**
     * 分页查询接口
     */
    @GetMapping("/list")
    public PageDTO list(Integer page, Integer size) {
        return itemService.pageInfo(page, size);
    }
}

 

标签:FeignClient,Feign,hmall,springframework,item,import,com
From: https://www.cnblogs.com/Rover20230226/p/17500154.html

相关文章

  • OpenFeign服务接口调用
    官网解释:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/#spring-cloud-openfeignFeign是一个声明式WebService客户端。使用Feign能让编写WebService客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的......
  • Feign的最佳实践
    Feign的最佳实践方式一(继承):给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。orderservice中的UserClient和userservice的Controller中的queryById基本相同,因此可以定义父接口作为统一标准  但是Feign官方不推荐提供者和消费者共用接口,会造成紧耦合。......
  • Feign性能优化
    一、Feign底层的客户端实现:1、URLConnection:默认实现,不支持连接池2、ApacheHttpClient:支持连接池3、OKHttp:支持连接池因此优化 二、Feign的性能主要包括:1、使用连接池代替默认的URLConnection2、日志级别,最好用basic或none 三、Feign添加HttpClient的支持1、引入依......
  • 自定义Feign配置
    配置Feign日志有两种方式:配置文件方式和Java代码方式全局生效:(1)方式一:配置文件方式feign:client:config:default:#这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置loggerLevel:FULL#日志级别(2)方式二:Java代码方式需......
  • Feign
    http客户端FeignRestTemplate方式调用存在的问题://通过”userservice“这个服务名称代替ip、端口Stringurl="http://userservice/user/"+order.getUserId(); Useruser=restTemplate.getForObject(url,User.class);问题:代码可读性差,编程体验不统一参数复杂UR......
  • Feign
    1.概念Feign是SpringCloudNetflix组件中的一个轻量级RESTful的HTTP服务客户端,实现了负载均衡和Rest调用的开源框架封装了Ribbon和RestTemplate,实现了WebService的面向接口编程,进一步降低了项目的耦合度。Feign内置了Ribbon,用来做客户端负载均衡调用服务注册中心的服务。Fe......
  • feign携带用户信息
    1.通过feignConfig配置文件来携带用户信息。2.@FeignClient(name="user-server",configuration={FeignConfig.class})3.feignConfig是实现了请求拦截器的,他可以把用户信息放到requestTemplate中。在header里面放一个key(user-info),value是用户信息。4.服务端,feign实现了......
  • springboot-feign接口压缩异常
    WARNorg.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver-Resolved[org.springframework.http.converter.HttpMessageNotReadableException:JSONparseerror:Illegalcharacter((CTRL-CHAR,code31)):onlyregularwhitespace(\r,\......
  • 真实案例:Feign 切换 okhttp 无法生效,被老大骂的有点慌!
    来源:https://www.cnblogs.com/mufeng3421/p/11442412.html提示:如果只看如何解决问题,请看文章的末尾如何解决这个问题1.场景描述最近项目中使用了feign当做http请求工具来使用、相对于httpclient、resttemplate来说,fegin用起来方便很多。然后项目有httptrace的需求,需要输出请求......
  • com.netflix.hystrix.exception.HystrixRuntimeException: xxxFeign#xxxx timed-out a
    问题描述在使用Feign进行远程调用时遇到的bug。原因是因为超时了。需要对超时时间进行设置一下即可。在Nacos进行设置原先的contentTimeout和readTimeout都是2000,修改成20000后bug便解决了。......