看着题目是不是显得很高大上,但是感觉实际项目中使用有点鸡肋,只是公司项目中大规模使用这个东西,那就来看看吧~~
本文主要介绍@FeignClient注解,使用该注解去开发HTTP RESTful接口客户端。
- 首先构建一个简单 spring boot web 工程,此处省略。
- 加入项目依赖。
调整依赖的版本,确保项目启动正常,本实例 demo 中版本如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
3、实现代码,此处以一个公共免费的证件号码的解析为远程服务例子。
身份证信息查询
启动类加入注解
@SpringBootApplication
@EnableFeignClients
public class SpringbootFeignClientApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootFeignClientApplication.class, args);
}
}
服务接口类
@FeignClient(name = "card-service",url = "http://api.guaqb.cn")
public interface CardService {
/**
* 解析身份证信息
* @param id
* @return
*/
@RequestMapping(value = "/music/id/card.php",method = RequestMethod.GET)
String resolve(@RequestParam(value = "id") String id);
}
服务请求类
@RestController
public class CardController {
@Resource
private CardService cardService;
@GetMapping("/test/{cardNo}")
public String remoteApi(@PathVariable("cardNo") String cardNo){
String resolve = cardService.resolve(cardNo);
System.out.println(resolve);
return resolve;
}
}
请求地址:
http://127.0.0.1:8080/test/身份证号码
返回结果:
{"msg":"ok","region":"山东xxxx","birthday":"1986-06-10","gender":"男","age":35,"adult":"成年人","zodiac":"虎","constellation":"双子座"}
其实实现思路也很简单就是生成一个代理类,请求地址 参数指向远程服务接口。
本文暂时没有评论,来添加一个吧(●'◡'●)