openfeign用在客户端,对服务端没啥要求,故只写客户端如何开发
1.开发环境
springboot 2.7.4
java 17
springcloud 2021.0.4
2.maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency><dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
3.主函数application类添加注解
@SpringBootApplication
@EnableFeignClients
public class Openfeign2Application {
public static void main(String[] args) {
SpringApplication.run(Openfeign2Application.class, args);
}
}
4.编写读取远程API接口类
import java.util.List;
@FeignClient(value = "ProjectClient",
url = "http://127.0.0.1:8080/"
)
public interface ProjectClient {
@RequestMapping(method = RequestMethod.GET, value = "/projects", produces = MediaType.APPLICATION_JSON_VALUE)
ResponseEntity<List<ProjectDTO>> getAllProjects();
}
参考文章:
7. Declarative REST Client: Feign
sample/SampleController.java at main · The-Tech-Tutor/sample · GitHub
feign/SampleController.java at main · The-Tech-Tutor/feign · GitHub