可以使用WebFlux的WebClient类很方便的对网络请求进行代理处理操作,我想Spring Cloud Gateway中主要用的就是WebClient进行操作,这里简单介绍一下WebClient的用法,想要深度学习的话,看一下Spring Cloud Gateway源码准没错
一些用法
流数据
首先创建一个server端,用于产生一些网络服务:
- Employee为员工类
- EmployeeFaker为通过javafaker包生成的一些数据
- EmployeeController生成一些服务,其中getEmployee为每一秒生成一个Employee对象,因为是流数据使用
APPLICATION_STREAM_JSON_VALUE
进行传输
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
class Employee {
Long id;
String name;
Integer age;
Integer salary;
String phoneNumber;
String address;
}
class EmployeeFaker extends Employee{
private final Faker f = new Faker(Locale.CHINA);
public EmployeeFaker (long i) {
id = i;
name = f.name().fullName();
age = f.random().nextInt(20, 50);
salary = f.number().numberBetween(1, 2000)*1000;
phoneNumber = f.phoneNumber().cellPhone();
address = f.address().streetName();
}
}
@RestController
@RequestMapping("server")
class EmployeeController {
@GetMapping(produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
public Flux<Employee> getEmployee() {
return Flux