在springboot单体项目上使用feign远程调用接口

之前使用feign是在分布式项目上,从来没有在纯springboot项目上单独用过。这次有需求要用突然间还挺蒙的,百度了一圈终于会了。

在Java中远程调用接口,可以使用HttpClient也可以使用feign,我这里就说feign的使用。

先导入feign依赖

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
            <version>1.3.2.RELEASE</version>
        </dependency>

创建feign客户端

接口上打上@FeignClient注解,括号里面两个参数必填

name:在分布式项目中这里需要填写对应微服务的服务名,由于我们是springboot单体项目所以这里可以随便填

url:远程调用的接口路径 我这里是配置在了application.properties文件里,方便修改。或者直接把URL的IP和端口写在这里也行

完整URL例子:http://IP:端口/getVersionListByProject?project=SYA

@Component//交给spring管理
@FeignClient(name = "jira",url = "${versionList.feign.url}")
public interface JiraFeignClient {

    /**
     * 通过项目查询版本信息(参数固定为SYA)
     * @return 返回json字符串
     */
    @GetMapping("/getVersionListByProject?project=SYA")
    String getVersionList();

    /**
     * 通过版本名获取issues信息
     * @param version:版本名称
     * @return 返回json字符串
     */
    @GetMapping("/getIssueInfoByVersion")
    String getIssuesByVersion(@RequestParam("version") String version);

}

在需要的类中注入接口调用方法

@component
public class JiraTimer {
    
    @Autowired
    private JiraFeignClient jiraFeignClient;
    
    
    public void test1() {
        
        String name = "版本名称";
        
        /* 通过接口调用方法获取数据,看具体返回什么数据,使用对应的类型进行接收就行 */
        String versionListStr = jiraFeignClient.getVersionList();
        
       String versionDetailStr = jiraFeignClient.getIssuesByVersion(name);
        
    }
    
}

版权声明:本文为weixin_45561263原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。