o7planning

Introduction to Spring Cloud

  1. Spring Cloud Overview
  2. The objective of Spring Cloud
  3. Spring Cloud Dependencies

1. Spring Cloud Overview

Spring is a platform built for developing web applications in the Java language. It was first introduced in 2004. In 2006, sub-projects appeared. Each sub-project focuses on a different field. Till now, you can see the sub-projects listed as the following illustration.
Spring IO (Spring Integration Objects) is the name used for the family of sub-projects of the Spring. It is considered as an umbrella and sub-projects are located below such umbrella.
Spring Cloud is a sub-project located in the Spring IO Umbrella and it itself is an umbrella, a sub-umbrella.
Below is the list of sub-projects and patterns in the Spring Cloud:

2. The objective of Spring Cloud

  • TODO

3. Spring Cloud Dependencies

All Spring Cloud projects should be created by the Spring Boot because the Spring Boot is created to help to be easier for developers to build the projects using the Spring Framework. It will be very difficult if you want to develop the core Spring Framework- based Spring Cloud application.
So to create a Spring Cloud application you need to create a Spring Boot project. And declare the required dependencies.
Declare Spring Boot Parent:
** 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>
Declare dependencies:
<!-- 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
  ...
-->