1. 程式人生 > >spring boot 依賴環境和項目結構介紹

spring boot 依賴環境和項目結構介紹

github ngs ins span js xml 工具 templates 但我 實體

1、環境介紹 使用 Spring Boot 開發項目需要有兩個基礎環境和一個開發工具,這兩個環境是指 Java 編譯環境和構建工具環境,一個開發工具是指 IDE 開發工具。 Spring Boot 2.0 要求 Java 8 作為最低版本,需要在本機安裝 JDK 1.8 並進行環境變量配置,同時需要安裝構建工具編譯 Spring Boot 項目,最後準備個順手的 IDE 開發工具即可。
1.1、構建工具 構建工具是一個把源代碼生成可執行應用程序的自動化工具,Java 領域中主要有三大構建工具:Ant、Maven 和 Gradle。
Ant(AnotherNeatTool)的核心是由 Java 編寫,采用 XML 作為構建腳本,這樣就允許你在任何環境下運行構建。Ant 是 Java 領域最早的構建工具,不過因為操作復雜,慢慢的已經被淘汰了。
Maven,Maven 發布於 2004 年,目的是解決程序員使用 Ant 所帶來的一些問題,它的好處在於可以將項目過程規範化、自動化、高效化以及強大的可擴展性。
Gradle,Gradle 是一個基於 Apache Ant 和 Apache Maven 概念的項目自動化建構工具。它使用一種基於 Groovy 的特定領域語言來聲明項目設置,而不是傳統的 XML。結合了前兩者的優點,在此基礎之上做了很多改進,它具有 Ant 的強大和靈活,又有 Maven 的生命周期管理且易於使用。 技術分享圖片

Spring Boot 官方支持 Maven 和 Gradle 作為項目構建工具。Gradle 雖然有更好的理念,但是相比 Maven 來講其行業使用率偏低,並且 Spring Boot 官方默認使用 Maven,因此本系列課程選擇使用 Maven 作為 Spring Boot 項目構建工具。
Java 領域最流行的 IDE 開發工具有 Eclipse 和 IDEA。Eclipse 是 Java 的集成開發環境(IDE),也是 Java 領域最流行的 IDE 開發工具之一,只是 Eclipse 這些年發展緩慢,慢慢的有些陳舊。IDEA(IntelliJ IDEA)是用於 Java 語言開發的集成環境,在業界被公認為是最好的 Java 開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE 支持、創新的 GUI 設計等方面的功能可以說是超常的。因此強烈推薦大家使用 IntelliJ IDEA 開發 Spring Boot 項目。

2、開發工具安裝

安裝 JDK

下載安裝

選擇下載各系統對應的版本,這裏以 Win10 64 位操作系統為例。

技術分享圖片

下載完成之後,雙擊鼠標進行安裝,一直單擊“下一步”按鈕直至安裝完畢。

環境變量配置

JDK 安裝完畢後,接下來配置 JDK 環境變量,選擇“我的電腦” | “屬性” | “高級系統設置” | “環境變量” | “新建”命令:

技術分享圖片

在彈出的對話框中新建JAVA_HOME變量以及 Java 安裝地址,如下圖:

技術分享圖片

單擊“確定”按鈕後,回到環境變量界面,雙擊Path變量,添加兩條 JDK 路徑,如下:

技術分享圖片

以上,Java 環境變量配置完畢!

測試

配置完成之後,測試一下 JDK 是否配置正確,Win10 下使用快捷 window+r 輸入 cmd 命令,進入運行窗口,執行命令java -version

,若出現如下結果,則表示安裝成功!

技術分享圖片

安裝 Maven

安裝 Maven 的前提是完成 Java 環境安裝,Maven 依賴於 Java 環境。

下載安裝

訪問 Maven 官網下載 Maven 對應的壓縮包,如下:

技術分享圖片

選擇 Maven 的 zip 壓縮包(apache-maven-3.5.4.zip),下載完成後解壓到本機目錄下。例如,路徑:D:\Common Files\apache-maven-3.5.4

技術分享圖片

Maven 為綠色軟件解壓後即可使用。

環境變量配置

按照上面步驟打開環境變量設置頁面,雙擊 Path 變量,將上一步解壓的目錄添加到 Path 中。

技術分享圖片

以上,Maven 環境配置完畢!

測試

Win10 下使用快捷 window+r 輸入 cmd 命令,彈出“運行”對話框,執行命令 mvn -v,若出現如下結果,則表示安裝成功!

技術分享圖片

settings.xml 設置

Maven 解壓後目錄下會有一個 settings.xml 文件,位置:${M2_HOME}/conf/settings.xml,用來配置 Maven 的倉庫和本地 Jar 包存儲地址。Maven 倉庫地址代表從哪裏去下載項目中的依賴包 Jar 包;Maven 會將所有的 Jar 包統一存儲到一個地址下,方便各個項目復用。

localRepository 設置本地存放 Jar 包地址,可以根據自己的情況改動:

<localRepository>D:\Common Files\maven\repository</localRepository>

mirrors 為倉庫列表配置的下載鏡像列表:

<mirrors>
    <mirror>  
        <id>repo2</id>  
        <mirrorOf>central</mirrorOf>  
        <name>spring2.0 for this Mirror.</name>  
        <url>https://repo.spring.io/libs-milestone</url>  
    </mirror>
    ...
<mirrors>

為了方便大家使用,我已經配好了一份 settings.xml 模板,可下載後直接覆蓋默認的 settings.xml 文件,覆蓋完成後需要修改 localRepository 路徑。

模板 settings.xml 文件地址,詳見這裏。

IntelliJ IDEA 安裝

下載

打開 IntelliJ IDEA 2018 官方下載地址,IDEA 分為兩種版本,即社區版和商業版,商業版是付費的,其功能多,社區版是免費的,功能相對較少。

技術分享圖片

安裝

下載完成後,雙擊安裝包開始安裝,一直單擊 Next 按鈕:

技術分享圖片

安裝過程中會選擇安裝路徑,展示 32 或者 64 位的啟動快捷鍵,最後單擊 Finish 按鈕,安裝完成。

配置

安裝完成後,第一次會提示選擇配置設置,選擇下面一個,單擊 OK 按鈕。

技術分享圖片

後面選擇同意協議,輸入“License server”激活軟件,根據自己的習慣選擇白色或者黑色的默認主題,然後選擇 IntelliJ IDEA 支持的擴展功能,也可以使用默認選項,然後直接單擊“下一步”按鈕,最後單擊 Start using IntelliJ IDEA 按鈕完成配置。

以上,開發工具安裝完畢!

3、構建項目

使用 IDEA 構建

  • 選擇 File | New | Project... 命令,彈出新建項目的對話框。
  • 選擇 Spring Initializr,Next 也會出現上述類似的配置界面,IDEA 幫我們做了集成。

技術分享圖片

  • 填寫相關內容後,單擊 Next 按鈕,選擇依賴的包再單擊 Next 按鈕,最後確定信息無誤單擊 Finish 按鈕。

對上面的配置做如下解釋。

  • 第一個選擇框選擇創建以 Maven 構建項目,還是以 Gradle 構建項目,這是兩種不同的構建方式,其中 Gradle 配置內容更簡潔一些,並且包含了 maven 的使用,但我們日常使用 maven 居多。
  • 第二個選擇框選擇編程語言,現在支持 Java、Kotlin 和 Groovy。
  • 第三個選擇框選擇 Spring Boot 版本,可以看出 Spring Boot 2.0 的最新版本是 2.0.5。

下面就是項目的配置信息了。

  • Group,一般填寫公司域名,比如百度公司就會填:com.baidu,演示使用 com.neo。
  • Artifact,可以理解為項目的名稱了,可以根據實際情況來填,本次演示填 hello。
  • Dependencies,在這塊添加我們項目所依賴的 Spring Boot 組件,可以多選,本次選擇 Web、Devtools 兩個模塊。

項目結構介紹

技術分享圖片

如上圖所示,Spring Boot 的基礎結構共三個文件,具體如下:

  • src/main/java:程序開發以及主程序入口;
  • src/main/resources:配置文件;
  • src/test/java:測試程序。

另外,Spring Boot 建議的目錄結構如下。

com.example.myproject 目錄下:

myproject
 +-src
    +- main
         +- java
              +- com.example.myproject
                    +- comm
                    +- model
                    +- repository
                    +- service
                    +- web
                    +- Application.java
         +- resources
              +- static
              +- templates
              +- application.properties
    +- test
 +-pom.xml

com.example.myproject 目錄下:

  • Application.java,建議放到根目錄下面,是項目的啟動類,Spring Boot 項目只能有一個 main() 方法;
  • comm 目錄建議放置公共的類,如全局的配置文件、工具類等;
  • model 目錄主要用於實體(Entity)與數據訪問層(Repository);
  • repository 層主要是數據庫訪問層代碼;
  • service 層主要是業務類代碼;
  • web 層負責頁面訪問控制。

resources 目錄下:

  • static 目錄存放 web 訪問的靜態資源,如 js、css、圖片等;
  • templates 目錄存放頁面模板;
  • application.properties 存放項目的配置信息。

test 目錄存放單元測試的代碼;pom.xml 用於配置項目依賴包,以及其他配置。

采用默認配置可以省去很多設置,也可以根據公司的規範進行修改,至此一個 Java 項目搭建好了!

Pom 包介紹

pom.xml 文件主要描述了項目包的依賴和項目構建時的配置,在默認的 pom.xml 包中分為五大塊。

第一部分為項目的描述信息:

<groupId>com.neo</groupId>
<artifactId>hello</artifactId>
<version>2.1.2.RELEASE</version>
<packaging>jar</packaging>

<name>hello</name>
<description>Demo project for Spring Boot</description>
  • groupId,項目的包路徑;
  • artifactId,項目名稱;
  • version,項目版本號;
  • packaging,一般有兩個值:jar、war,表示使用 Maven 打包時構建成 Jar 包還是 War 包;
  • name,項目名稱;
  • description,項目描述。

第二部分為項目的依賴配置信息:

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

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>
  • parent,標簽內配置 Spring Boot 父級版本 spring-boot-starter-parent,Maven 支持項目的父子結構,引入父級後會默認繼承父級的配置;
  • dependencies,標簽內配置項目所需要的依賴包,Spring Boot 體系內的依賴組件不需要填寫具體版本號,spring-boot-starter-parent 維護了體系內所有依賴包的版本信息。

第三部分為構建時需要的公共變量:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
</properties>

上面配置了項目構建時所使用的編碼,輸出所使用的編碼,最後指定了項目使用的 JDK 版本。

第四部分為構建配置:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

使用 Maven 構建 Spring Boot 項目必須依賴於 spring-boot-maven-plugin 組件,spring-boot-maven-plugin 能夠以 Maven 的方式為應用提供 Spring Boot 的支持,即為 Spring Boot 應用提供了執行 Maven 操作的可能。spring-boot-maven-plugin 能夠將 Spring Boot 應用打包為可執行的 jar 或 war 文件,然後以簡單的方式運行 Spring Boot 應用。

以上即為 pom.xml 文件基礎內容,幾乎所有的 Spring Boot 項目都會用到以上配置信息。

spring boot 依賴環境和項目結構介紹