Spring Cloud簡介


Spring是一個用於在Java語言中開發Web應用程式的平台。 它於2004年首次推出。2006年,Spring的很多子專案跟著誕生。 每個子專案都側重於不同的領域。 到目前為止,您可以看到常見的子專案如下圖所示-

Spring IO(Spring Integration Objects)是用於Spring子專案族的名稱。 它被認為是一個傘,子專案位於這樣的傘下面。
Spring Cloud是一個位於Spring IO Umbrella中的子專案,它本身就是一把主傘和一個副傘。

Spring Cloud為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如組態管理,服務發現,斷路器,智慧路由,微代理,控制匯流排,一次性令牌,全域性鎖定,領導選舉,分散式 對談,叢集狀態)。 分散式系統的協調導致鍋爐板模式,使用Spring Cloud開發人員可以快速站起來實現這些模式的服務和應用程式。 它們適用於任何分散式環境,包括開發人員自己的膝上型電腦,裸機資料中心和Cloud Foundry等託管平台。

以下是Spring Cloud中的子專案和模式列表:

所有Spring Cloud專案都應該由Spring Boot建立,因為Spring Boot是為了幫助開發人員更輕鬆地使用Spring Framework構建專案。 如果要開發基於Spring Framework的核心Spring Cloud應用程式將非常困難。
因此,要建立Spring Cloud應用程式,您需要建立一個Spring Boot專案。 並宣告所需的依賴項。

宣告Spring Boot Parent:

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
</properties>

...

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

宣告依賴項:

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka -->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server -->

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

<!--
  spring-cloud-starter-eureka
  spring-cloud-starter-eureka-server
  ...
-->