webclient采用非阻塞的方式实现http调用。RestTemplate采用的是阻塞式的方式。
为了更好的展示两者的区别,下面我们写了一个demo,供大家参考
先创建一个供调用的接口
package com.wc.www.ScBus.restcontroller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.wc.www.ScBus.entity.Tweet;
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/slow-service-tweets")
private List<Tweet> getAllTweets() {
try {
Thread.sleep(2000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // delay
return Arrays.asList(
new Tweet("RestTemplate rules&