6.3.1 创建服务调用工程
使用IDEA创建服务调用工程:
6.3.2 编写配置入口类文件
在入口类配置文件中添加“@EnableEurekaClient
”注解:
package com.marshal.springcloud.resttemplate;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class ResttemplateApplication {
public static void main(String[] args) {
SpringApplication.run(ResttemplateApplication.class, args);
}
}
6.3.3 编写控制器类
使用“Spring Cloud”内置的RestTemplate对象进行服务间通信调用:
package com.marshal.springcloud.resttemplate.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;
/**
* @Author 王毅
* @Date 2020/9/2 11:45
*/
@Controller
public class RestTemplateController {
@GetMapping("/getBookInfoByRestTemplate")
@ResponseBody
public String getBookInfoByRestTemplate(Long bookId) {
RestTemplate restTemplate = new RestTemplate();
String json = restTemplate.getForObject("http://localhost:9000/book/getBookInfo?bookId="
+ bookId, String.class);
System.out.println(json);
return json;
}
}
注:
1:类“RestTemplate”底层使用“Apache HttpClient”组件进行HTTP传输;
2:因此种方式需要将访问IP地址和端口号均编写在代码中,不便于维护所以不推荐使用。
6.3.4 编写工程配置文件
删除原工程配置文件“application.properties”并创建编写工程新配置文件
“bootstrap.yml”:
spring:
application:
name: resttemplate
cloud:
config:
discovery:
enabled: true
service-id: config
profile: dev
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
在配置中心所访问的云Git服务添加配置文件。
其中配置文件“resttemplate.yml”的内容为:
配置文件“resttemplate-dev.yml”内容:
配置文件“resttemplate-prd.yml”内容:
6.3.5 启动服务进行验证
启动服务并打开浏览器输入访问地址: http://localhost:9000/resttemplate/getBookInfoByRestTemplate?bookId=3