欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RestTemplate(远程调用技术)

程序员文章站 2022-04-28 16:49:49
...

1. Spring提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和反序列化,非常方便。RestTemplate并没有限定Http的客户端类型,而是进行了抽象,目前常用的3种都有支持:

- HttpClient

- OkHttp

- JDK原生的URLConnection(默认的)

 

2. RestTemplate 使用步骤

   2.1 首先在项目中注册一个`RestTemplate`对象,可以在启动类位置注册:

package com.guo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableDiscoveryClient
public class EurekaConsumer2Application {

	public static void main(String[] args) {
		SpringApplication.run(EurekaConsumer2Application.class, args);
	}

	@Bean
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
}

 

  2.2 在controller类中直接`@Autowired`注入:

package com.guo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class GetUserController {

    @Autowired
    RestTemplate restTemplate;

    @RequestMapping("/user")
    public String userString() {
        String str = restTemplate.getForObject("http://localhost:9081/getUser", String.class);
        return str;
    }
}

 

相关标签: restTemplate