springcloud之服务调用

springcloud简介

一、优势

  1. 可以使用Spring家族中的其它东西

  2. 完全支持SpringBoot的开发,用很少的配置就可以完成微服务架构的搭建

二、内容简介

Spring最擅长的就是集成、把世界上最好的框架拿过来,集成到自己的项目中,SpringCloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理、服务发现、智能路由、负载均衡、熔断器、控制总线、集群状态等功能;协调分布式环境中各个系统,为各类服务提供模板性配置,其主要涉及的组件包括:

Eureka : 注册中心

ZuulGateway : 服务网关

Ribbon : 负载均衡

Feign : 服务调用

HystrixResilience4j : 熔断器

三、模拟客户端和服务端之间的调用

客户端

一、创建springBoot的工程,myhttp

二、引入web启动器

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

            <version>2.2.2.RELEASE</version>

        </dependency>

三、在启动类HttpdemoApplication中注册RestTemplate对象

@SpringBootApplication
public class MyhttpApplication {

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

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

}

服务端

二、使用springinitialer创建springBoot工程httpdemo

2.1 pom.xml中引入web启动器

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

            <version>2.2.2.RELEASE</version>

        </dependency>

2.2 写一个controller层的控制器

@RestController
@CrossOrigin
public class HelloController {
    @RequestMapping("/sayHello")
    public String sayHello() {
        return "hello";
    }
}

客户端向服务端发送请求

在测试类中,RestTemplate对象发起请求

@SpringBootTest
class MyhttpApplicationTests {


    @Autowired
    private RestTemplate restTemplate;


    @Test
    void contextLoads() {

        String forObject = restTemplate.getForObject("http://localhost:8080/sayHello", String.class);
        System.out.println(forObject);
    }

}

先运行服务端再运行客户端即可得到输出结果,hello

posted @ 2023-03-18 17:42  暖阳的雪  阅读(55)  评论(0)    收藏  举报