使用FeignClient实现简单的Restful调用,FeignClient只是对访问封装。不需要对服务端做出修改。
使用前提:
springboot
实现步骤:
Step 1. 加入jar依赖,maven pom.xml文件中加入如下依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>${spring.cloud.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-core</artifactId>
<version>${spring.cloud.version}</version>
</dependency>
//下面依赖可选,因为使用spring boot,指定容器类型
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>8.5.20</version>
<scope>test</scope>
</dependency>
Step 2: 客户端application.yml中指定服务端配置
服务端名称在application.yml中定义,格式如下:
servername:
ribbon:
listOfServers: localhost:22222
command:
default:
execution:
timeout:
enabled: false
@FeignClient("指向的服务端名称"); 服务端名称在application.yml中定义
@EnableFeignClients, 例如下:扫描包范围
@EnableFeignClients(basePackages = ("com.joe.fan.api.feignclient"))
服务端接口实现类注解:
@RestController
@Service
@RequestMapping
被调用接口实现类方法注解:
@RequestMapping(value="/{id}", method= RequestMethod.GET)
被调用接口实现类方法入参注解:
@RequestBody 服务接口实现,需要加入注解,例:
public String sendMessage (@RequestBody MsgSendRequest request)