SpringCloud使用RestTemplate调用服务

文章目录

        • 一、前情提要
            • 1.注册中心
            • 2、服务注册
        • 二、使用SpringBoot创建一个consumer项目
            • 1、导入依赖(注意jar包版本和SpringBoot项目匹配问题)
            • 2、applicaiton.yml
            • 3、启动类上添加注解@EnableEurekaClient
            • 4、启动类中将RestTemplate注入SpringBoot容器,并开启负载均衡
            • 5、调用方法
            • 6、查看注册中心
            • 7、访问方法调用

一、前情提要

1.注册中心
server:
  port: 8000
  
  #注册中心地址
      defaultZone: http://127.0.0.1:8000/eureka
  
2、服务注册
server:
  port: 8100

spring:
  application:
    name: Hello-World

注册服务项目中的方法(被consumer调用)

/**
 * Created by yan on 2019/3/12.
 */
@Controller
public class TestController {

    @RequestMapping("test")
    @ResponseBody
    public String test(){

        return "那就这样吧";
    }
}

二、使用SpringBoot创建一个consumer项目

1、导入依赖(注意jar包版本和SpringBoot项目匹配问题)

  我的SpringBoot项目之前是2.X版本,但是引入的eureka和ribbon是1.X版本,导致项目启动失败,将SpringBoot项目改为1.X版本,正常启动

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloudgroupId>
			<artifactId>spring-cloud-dependenciesartifactId>
			<version>Dalston.SR5version>
			<type>pomtype>
			<scope>importscope>
		dependency>
	dependencies>
dependencyManagement>

<dependencies>
<dependency>
	<groupId>org.springframework.cloudgroupId>
	<artifactId>spring-cloud-starter-eurekaartifactId>
dependency>

<dependency>
	<groupId>org.springframework.cloudgroupId>
	<artifactId>spring-cloud-starter-ribbonartifactId>
dependency>

<dependency>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-webartifactId>
dependency>
dependencies>
2、applicaiton.yml
server:
  port: 9000
  
spring:
  application:
    name: consumer

eureka:
  client:
    service-url:
      #注册中心地址
      defaultZone: http://127.0.0.1:8000/eureka
3、启动类上添加注解@EnableEurekaClient
4、启动类中将RestTemplate注入SpringBoot容器,并开启负载均衡

当然也可以将这段代码写在配置类中(别忘了@configuration),简单测试已简单为主!!!!!!!

	@Bean
	@LoadBalanced  //表示开启客户端负载均衡
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
5、调用方法
/**
 * Created by yan on 2019/3/12.
 */
@Controller
public class TestController {

    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping("test")
    @ResponseBody
    public String test(){
    	//HELLOW-WORLD是注册中心的消息注册,test为服务注册中的test方法
        String body = restTemplate.getForEntity("http://HELLO-WORLD/test", String.class).getBody();
        return body;
    }
}
6、查看注册中心

启动注册中心、注册服务、消费者
查看注册中心
SpringCloud使用RestTemplate调用服务_第1张图片

7、访问方法调用

SpringCloud使用RestTemplate调用服务_第2张图片

你可能感兴趣的:(SpringCloud)