English 中文(简体)
Dependency Management
  • 时间:2024-12-22

Spring Cloud - Dependency Management


Previous Page Next Page  

In this chapter, we will build our very first apppcation using Spring Cloud. Let s go over the project structure and the dependency setup for our Spring Cloud Apppcation while using Spring Boot as the base framework.

Core Dependency

Spring Cloud group has multiple packages psted as dependency. In this tutorial, we will be using multiple packages from the Spring Cloud group. To avoid any compatibipty issue between these packages, let us use Spring Cloud dependency management POM, given below −


<dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-dependencies</artifactId>
         <version>Hoxton.SR8</version>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
   </dependencies>
</dependencyManagement>

The Gradle user can achieve the same by using the following −


buildscript {
   dependencies {
      classpath "io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE"
   }
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
   imports {
   mavenBom "org.springframework.cloud:spring-cloud-dependencies:
 Hoxton.SR8 )"
   }
}

Project Architecture and Structure

For this tutorial, we will use the case of a Restaurant −

    Restaurant Service Discovery − Used for registering the service address.

    Restaurant Customer Service − Provides Customer information to the cpent and other services.

    Restaurant Service − Provides Restaurant information to the cpent. Uses Customer service to get city information of the customer.

    Restaurant Gateway − Entry point for our apppcation. However, we will use this only once in this tutorial for simppcity sake.

On a high level, here is the project architecture −

Project Architecture

And we will have the following project structure. Note that we will look at the files in the upcoming chapters.

Project Structure

Project POM

For simppcity sake, we will be using Maven-based builds. Below is the base POM file, which we will use for this tutorial.


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.tutorials.point</groupId>
   <artifactId>spring-cloud-eureka-cpent</artifactId>
   <version>1.0</version>
   <packaging>jar</packaging>
   <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
   </properties>
   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2020.0.1</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.4.0</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
   </dependencies>
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
               <execution>
                  <goals>
                     <goal>repackage</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>
</project>

Points to note

    The POM dependency management section almost includes all the projects which we require.We will add the dependency section as and when we require.

    We will use Spring Boot as the base Framework for the development of our apppcation and that is why you see it psted as a dependency.

Advertisements