iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
2
Modern Web

站在Web前端人員角度,學習 Spring Boot 後端開發系列 第 3

Day 03 - Spring Boot 開發利器

工欲善其事,必先利其器。

(首先,我需要一顆好腦袋/images/emoticon/emoticon39.gif)

這次專案程式開發環境選用 IntelliJ IDEA,IntelliJ IDEA,是一個Java整合式開發環境(Integrated Development Environment,IDE),由JetBrains軟體軟體公司開發,提供Community(For JVM and Android development)和Ultimate(For web and enterprise development)兩種版本可供選擇,以下專案建置是用Ultimate版本。

點擊下載IDE
專案環境版本為 JDK 8

逐步建立專案

(1)打開IntelliJ IDEA,映入眼簾的是以下畫面,可以建立一個新的專案或開啟專案,點擊「New Project」。
https://ithelp.ithome.com.tw/upload/images/20200912/201188571BHW6dAHMu.png
(2)接著,到「Spring Initializr」產生Spring Boot專案的基本目錄,點擊「Next」。
https://ithelp.ithome.com.tw/upload/images/20200912/201188576fLHYq5xIG.png
(3)再來,設定專案名稱,點擊「Next」。
https://ithelp.ithome.com.tw/upload/images/20200912/20118857JaSuodAJ6W.png

  • Group: 可自由填寫,通常為組織名稱
  • Artifact: 專案名稱,通常會以專案名稱命名
  • Version : 專案版本號
  • Type:選擇Maven
  • Language:選擇Java
  • Packaging:選擇Jar
  • Java Version:選擇 8

(4)最後,進入設定dependencies,一開始會先設定幾個依賴項,若後來有需要可以再行添加,點擊「Next」。

  • 至 [Web]→ Spring Web (有RESTful spring MVC, default Tomcat container )
  • 至 [SQL]→ Spring Data JPA (Persist data in SQL stores with Java Persistence API)
  • 至 [SQL]→ H2 Database (free SQL database written in Java.)
    https://ithelp.ithome.com.tw/upload/images/20200912/20118857O7GAeisXHN.png

https://ithelp.ithome.com.tw/upload/images/20200912/201188576csgHIh30Z.png
(5)最後的最後,選擇專案要放置的資料夾,點擊「Finish」,就完成啦!
https://ithelp.ithome.com.tw/upload/images/20200912/20118857kM9Lt8ck9F.png


這次的實作會採取Maven建構專案,透過Spring MVC 串接H2 資料庫完成整個Spring Web,讓我們稍微理解一下上述設定所出現的陌生名詞。

Maven

Maven和Gradle都是專案的自動建構工具,在軟體發行需要經過編譯原始碼、程式測試、構建步驟和版本佈署等,若用人工的方式易出錯,所以使用自動化的方式來執行繁瑣的步驟。

  • Maven 基於XML的配置
  • Gradle 採用Groovy的配置

XML的配置

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.caili</groupId>
    <artifactId>todolist</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>todolist</name>
    <description>Demo ToDo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
....

Gradle配置


plugins {
	id 'org.springframework.boot' version '2.3.3.RELEASE'
	id 'io.spring.dependency-management' version '1.0.8.RELEASE'
	id 'java'
}

group = 'com.caili'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation('org.springframework.boot:spring-boot-starter-test') {
		exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
	}
}

test {
	useJUnitPlatform()
}

Spring Data JPA

Spring Data 提供了持久層(Data Persistence Layer)的支援,目的是希望與 Spring 其他元件易於整合,物件導向模型(ORM)來看待持久層,ORM讓Model資料層與資料訪問層做了關聯,當作一個中繼資料,用操作物件的方式對資料庫進行操作。

H2 Database

H2 屬於記憶體型資料庫,即全部儲存的資料內容是存放在伺服器記憶體中,也因此讀寫效能相對較高,但當伺服器關閉時資料也會立即消失,而 H2 是利用 Java 所設計出的關聯式資料庫,目前是一款具開源、免費、輕量與速度相當快的資料庫引擎,當我們在專案引用時,自動會提供瀏覽器的管理控制台,支援 JDBC、ODBC API 和 SQL語法。


選擇一個好的整合開發環境對程式開發人員來說是十分重要的,而直接動手操作是功力進步的唯一法則,來~ 大家一起動起來~


上一篇
Day 02 - Spring Boot 你是誰?
下一篇
Day 04 - Spring Boot 哈囉!世界
系列文
站在Web前端人員角度,學習 Spring Boot 後端開發30
1
Arthur
iT邦新手 5 級 ‧ 2020-09-13 00:08:15

按圖施工 保證成功 是吧!!

0
NiJia
iT邦新手 5 級 ‧ 2020-10-02 23:52:58

wow 厲害

cailiwu iT邦新手 5 級 ‧ 2020-10-03 10:35:00 檢舉

忍者大大出沒了~/images/emoticon/emoticon34.gif

0
q816697q
iT邦新手 5 級 ‧ 2021-07-16 17:58:43

請問這IDE是付費版的嗎

我要留言

立即登入留言