Java Spring Cloud 實戰之路 - 1 建立專案

月影西下發表於2020-05-31

0. 前言

該專案使用Maven進行管理和構建,所以需要預先配置好Maven。嗯,在這個系列裡就不做過多的介紹了。

1. 建立專案

先建立一個pom.xml 檔案,新增以下內容:

<?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>club.attachie</groupId>
    <artifactId>nature</artifactId>
    <packaging>pom</packaging>
    <version>${revision}</version>
    <properties>
        <revision>1.0-SNAPSHOT</revision>
    </properties>
</project>

POM 全稱 project object model,也就是專案物件模型,它是maven專案的標註檔案,採用XML格式,名稱就是pom.xml。這個檔案用於管理原始碼、配置檔案、開發者的資訊和角色、問題追蹤系統、組織資訊、專案授權、專案地址和依賴關係。

pom檔案對於maven專案重要到,一個maven專案可以沒有其他的任何檔案和內容,但絕對不能沒有pom.xml檔案。

1.1 專案資訊

pom檔案中包含了專案的基本資訊:

  • groupId 組織名稱
  • artifactId 專案名稱
  • version 版本號

1.2 使用佔位符

在pom中我們會使用很多專案的版本號,有時候還會使用一些其他的常量。如果常量分佈的比較零散,這樣就不利於我們的維護和管理。這時候就要引入佔位符或者叫屬性。我們將需要的常量宣告在properties節點內:

<properties>
    <revision>1.0-SNAPSHOT</revision>
</properties>

這種形式類似於 宣告瞭一個變數

revision=1.0-SNAPSHOT

在需要這個變數的時候,通過${revision}使用即可。

2. 專案結構分層

在一個工業級的專案裡,我們需要對專案進行一個合理的分層。這樣有利於開發和後期維護。

那麼,先在根目錄下新增這三個目錄:

  • common 用來存放一些公共包
  • activities 業務模組所在的父包
  • manager 用來存放一些Spring Cloud的一些管理工具,例如Spring boot admin、Spring Cloud Gateway等

分別在三個目錄下新增 pom.xml檔案,新增:

<?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>club.attachie</groupId>
    <artifactId>各自的專案名稱,建議是目錄名</artifactId>
    <packaging>pom</packaging>
    <version>${revision}</version>
    <parent>
        <groupId>club.attachie</groupId>
        <artifactId>nature</artifactId>
        <version>${revision}</version>
    </parent>

</project>

並修改各自的artifactId。

然後註冊到根目錄的pom.xml,標記這三個專案為子專案。

<modules>
    <module>common</module>
    <module>activities</module>
    <module>manager</module>
</modules>

然後執行:

mvn clean install

檢查一下配置是否有誤。

3. 引入公共依賴

Spring boot和Spring Cloud建立了對應的依賴包,可以讓我們在開發過程中不用過多的擔心一些常見專案與Spring boot和Spring Cloud的版本衝突問題。

先在根目錄下的pom.xml檔案中宣告引入的 Spring boot版本號和Spring Cloud版本號:

<spring-boot.version>2.2.5.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>

建立依賴管理節點,並新增 Spring boot 和Spring Cloud依賴包:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <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>

在子包中需要用到的三方包,理應都由根目錄下的pom.xml進行管理,而管理的包都會放在dependencyManagement >> dependencies 節點下。

在專案中使用依賴,在pom.xml檔案的project節點下新增如下節點,如果已有可以忽略,注意不是dependencyManagement下的

<dependencies>
    
</dependencies>

試著新增lombok包(這個包是一個Java中很著名的包,可以省略Java中的get/set等方法的建立)。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

之所以沒有宣告版本號,是因為這個包已經由 spring-boot-dependencies 進行管理了。所以我們直接在這裡引入即可。

4. 總結

現在,我們搭建起了一個專案架子,裡面空蕩蕩的什麼都沒有,但這樣就形成了一個骨架,後期將為這個骨架豐富血肉,讓它的功能更加強大。

更多內容煩請關注我的部落格《高先生小屋》

file

相關文章