01.Spring Cloud 之概述

1. 概述

1.1 版本號來源

Spring Cloud 的版本號並不是我們通常見的數字版本號,而是一些很奇怪的單詞。這些單詞均爲英國倫敦地鐵站的站名。同時根據字母表的順序來對應版本時間順序,比如:最早的 Release 版本 Angel(天使),第二個 Release 版本 Brixton(英國地名),然後是 Camden、Dalston、Edgware,目前使用較多的是 Finchley(英國地名)版本,而最新版本爲 Hoxton(英國地名),本博客使用的是 Greenwich(格林威治)。

1.2 Spring Cloud 與 Spring Boot 版本

Spring Cloud 版本信息
某一版本的 Spring Cloud 要求必須要運行在某一特定 Spring Boot 版本下。它們的對應關係在 Spring Cloud 官網可以看到版本對應說明。

2. 環境搭建

2.1 服務提供者

代碼已經上傳至 https://github.com/masteryourself-tutorial/tutorial-spring ,詳見 tutorial-spring-cloud/tutorial-spring-cloud-provider/tutorial-spring-cloud-provider-simple-5001 工程

2.1.1 配置文件
1. pom.xml
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.4.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
2.1.2 代碼
1. ProviderApplication5001
@SpringBootApplication
public class ProviderApplication5001 {

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

}
2. ProviderController
@RestController
@RequestMapping("/provider")
public class ProviderController {

    @Value("${server.port}")
    private String serverPort;

    @RequestMapping(value = "info")
    public Map<String, String> info() {
        Map<String, String> result = new HashMap<>(10);
        result.put("code", "200");
        result.put("serverPort", serverPort);
        return result;
    }

}

2.2 服務消費者

代碼已經上傳至 https://github.com/masteryourself-tutorial/tutorial-spring ,詳見 tutorial-spring-cloud/tutorial-spring-cloud-provider/tutorial-spring-cloud-consumer-simple-6001 工程

2.2.1 配置文件
1. pom.xml
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.4.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
2.2.2 代碼
1. ConsumerApplication6001
@SpringBootApplication
public class ConsumerApplication6001 {

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

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

}
2. ConsumerController
@RestController
@RequestMapping("/consumer")
public class ConsumerController {

    @Autowired
    private RestTemplate restTemplate;

    private static final String SERVICE_PROVIDER = "http://localhost:5001/";

    @RequestMapping("/info")
    public Map<String, String> info() {
        String url = SERVICE_PROVIDER + "provider/info";
        return restTemplate.exchange(url, HttpMethod.GET, null, new ParameterizedTypeReference<Map<String, String>>() {
        }).getBody();
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章