编写服务端
@RestController
public class HelloController {
@GetMapping("hello")
public String getHello(){
return "get Hello";
}
@PostMapping
public String postHello(){
return "post Hello";
}
}
编写Client接口
有以下几个注意点
- 端口和url都要写到url中
- 必须是接口不能是类
- 返回值不能是Object否则反序列化会失败
@FeignClient(url="127.0.0.1:8080")
public interface HelloClient {
@GetMapping("hello")
String getHello();
@PostMapping
String postHello();
}
编写启动类
@SpringBootApplication
@EnableFeignClients
public class Application {
public static void main(String[] args) {
try {
SpringApplication.run(Application.class,args);
} catch (Exception e) {
e.printStackTrace();
}
}
}
编写调用测试类
引入测试依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SampleTest {
@Autowired
private HelloClient helloClient;
@Test
public void test(){
String response = helloClient.getHello();
System.out.println(o.toString());
}
}