Day 1 - Spring Boot 簡介

古古

2023/11/01


哈囉大家好,我是古古。

這次希望可以透過 30 天的鐵人賽文章,讓沒接觸過(甚至沒聽過)Spring Boot 的人,了解 Spring Boot 到底是什麼,以及如何運用 Spring Boot 搭建一個簡易的後端系統。

那麼我們就開始吧,Let’s go!

學習目標(你可以學到什麼?) #

經過這 30 篇系列文,你可以學到:

  • 了解什麼是 Spring Boot,以及如何運用 IntelliJ 這套軟體開發 Spring Boot 程式
  • 了解 Spring 框架的兩大特性 - IoC 和 AOP
  • 了解 Spring MVC、Spring JDBC 的基本用法
  • 能夠運用 Spring Boot,實作出一個簡易的後端系統

哪些人適合閱讀這個系列文(適合誰?) #

  • 想學習 Spring Boot,但不知道從何入門
  • 看過 Spring Boot 的相關介紹,但不了解實際要如何運用

閱讀前的準備(須具備什麼知識?) #

閱讀此系列文前,必須具備「Java 程式語言」和「MySQL 資料庫設計」的知識:

  • Java:了解基本 Java 的語法,並且至少要知道 「多型(polymorphism)」 的概念
  • MySQL:了解基本的 SQL 語法(Select、Update、Insert、Delete)即可

另外 Mac / Windows 皆可閱讀,電腦環境不影響。

正文開始:什麼是 Spring Boot? #

所謂的 Spring Boot,他是目前 Java 後端中最主流的開發框架,不過在開始介紹什麼是 Spring Boot 之前,我們需要先來了解一下「前端」跟「後端」之間的差別、以及「框架」又是代表什麼意思。

「前端」和「後端」的差別 #

在現今的網站架構中,可以分成「前端」和「後端」兩部分:

  • 前端: 負責網頁的排版設計。所以像是網頁中要使用什麼顏色的按鈕、按鈕要放在哪裡、標題大小要多大…等等,這些都是屬於前端的範疇。
  • 後端: 負責數據處理。所以像是商品的價格是多少、每一筆評價的留言內容是什麼…等等,這些有關數據內容的,都是屬於後端的範疇。

所以簡單的說的話,前端工程師就是去負責實作「這個網頁要長什麼樣子」,而後端工程師,則是負責去處理「要在這個網頁上賣什麼東西」,所以前端工程師處理的是排版設計,而後端工程師處理的則是動態的數據。

而在理解了前端和後端的概念之後,接著就可以來理解「框架」的概念了。

「框架」是什麼意思? #

透過剛剛的介紹,現在我們知道,前端是負責網頁的排版設計,後端則是負責數據處理。而在前端的世界中,其實是有非常多種的程式語言,都可以去實作出網站的排版設計,所以同樣的道理,在後端的世界中,也是有非常多種的程式語言,可以去實作出數據處理的功能的。

在後端的世界裡中,比較常被拿來使用的程式語言有 Java、Python、PHP…等等,所以「Java 後端」所表示的,就是使用 Java 來開發的後端程式。

而在最古早的時代,工程師們就是直接拿著 Java 和 Python 這種程式語言,一筆一畫的把整個後端系統給實作出來,所以使用者就可以透過這個後端系統,在某個電商網站中執行購買商品、或是去查看商品評價……等等的操作。

但是這些工程師們當時寫著程式就發現,每次開發一個後端系統,都要重新寫一堆相似度非常高的程式,覺得很心累也很浪費時間,因此就有團隊開始開發出了 「框架(Framework)」,試圖提升開發後端系統的效率。

所以到這邊為止,你可以先簡單的把「框架(Framework)」想像成是一個好用的工具包,在沒有框架以前,你要花非常多時間和力氣,才能夠手動的用螺絲起子,去把整個後端的系統給蓋出來,而在有了框架之後,你就像拿到一把強力電鑽一樣,只要輕鬆的按幾下按鈕,就可以快速的把後端系統給架設出來了。

所以「加速工程師開發的效率」,就是「框架」被發明出來的目的。

所以,Spring Boot 到底是什麼? #

了解了「Java 後端」和「框架」的意義之後,這時候我們回頭看最一開始說的那句話,就比較可以看的懂了。

我們在最一開始有提到:「Spring Boot 是目前 Java 後端中最主流的開發框架」,所以 Spring Boot 的目的,就是「提供一個好用的工具,讓 Java 後端工程師可以加快開發的效率」。

也因為 Spring Boot 非常的好用,幾行簡單的設定就可以快速架設出一個後端系統出來,所以 Spring Boot 就成為了目前 Java 業界中最主流的開發框架,甚至已經到了 「不會 Spring,不談就業」 的程度,由此也可知 Spring Boot 對 Java 業界的影響程度。

補充:「框架」的目的,就是為了提升工程師開發的效率,而不同的程式語言,其實都會有他專屬對應的框架可以使用,譬如說以 Java 為例,他對應的主流框架就是 Spring 框架,而 PHP 的話,對應的主流框架則是 Lavarel 框架,不同程式語言之間的框架是沒辦法混用的。

Spring Boot 的優勢在哪裡? #

所以到這邊為止,我們已經大概了解了 Spring Boot 的用途了,基本上 Spring Boot 就是 Java 後端中的一個好用的開發框架,只要你是使用 Java 來開發後端程式,通常就是會使用 Spring Boot 這套框架,來加速你開發後端程式的效率。

但說了這麼多,使用 Spring Boot 的好處在哪裡?他到底為我們提升了哪些開發的效率?所以以下我們就來探討一下,使用S pring Boot 開發的優勢在哪裡。

優勢一:簡化 Spring 開發 #

使用 Spring Boot 的第一個好處,就是可以「簡化 Spring 的開發」。

在很久很久以前,在當時傳統的 Spring 框架開發中,其實工程師是需要進行大量的 xml 設定,才能將 Spring 框架運行起來,而 Spring Boot 的推出,就是希望能夠解決 Spring 框架設定繁瑣的缺點。

舉個例子來說的話,在傳統 Spring 框架中,你就是會有一堆車子的零件,但是你必須要自己「手動」把他們焊接起來,並且你可能還會焊錯;而新一代的 Spring Boot,則是你直接走進去汽車店裡,直接花錢下單把車開走,所以兩者相較起來,當然是 Spring Boot 更加簡單好用。

另外大家也可以觀察一下「Spring Boot」這個單字,他其實就是由「Spring」和「Boot」兩個字所組合起來的,其中「Spring」所代表的就是 Spring 框架,而「Boot」所代表的則是開機的意思,所以組合這兩個單字的話,就可以得到「Spring Boot」。

所以 Spring Boot 本身的目的,就是希望能提供一個按下開機鍵,就可以直接使用的後端程式給你,並且在這個後端程式的內部,就都是使用 Spring 框架的零件所組成的。

優勢二:快速整合主流框架 #

使用 Spring Boot 開發的第二個優勢,就是可以「快速的整合主流框架」。

因為 Spring Boot 採用了 「約定優於配置」 的設計方式,因此就可以簡化開發時繁瑣的設定檔,快速的整合其他主流框架,提升工程師開發的效率。

這個「約定優於配置」聽起來是有點抽象,其實換句話說的話,就是 Spring Boot 會預先幫你設定好預設值的意思,所以假設你今天加了一個新功能,即使你一行設定都沒有寫,Spring Boot 也會預先套用他寫好的設定檔,快速的整合該框架進來。

雖然「約定優於配置」是很大的優點,不過對於初學 Spring Boot 的人來說,可能反而會是一個小缺點,因為太多東西都被 Spring Boot 預先設定好了,因此初學者可能會完全搞不懂現在是發生了什麼事情。

不過只要好好的學習過 Spring Boot 的用法、以及相關的設定之後,這個優點就會轉變成非常強大的優勢!

其他優勢 #

當然 Spring Boot 還有其他很厲害的優勢,不過優勢都是和過往的框架比較出來的,而那些框架目前已經非常少見,因此大家有興趣的話,可以再去搜索 Spring Boot 和其他框架的對比,這邊就不多做贅述。

系列文章規劃 #

大致了解了前端和後端的概念,以及 Spring Boot 是什麼之後,接下來是介紹一下此系列文的文章規劃安排。

此系列文會分成 30 篇文章,透過 5 個部分來介紹 Spring Boot,預計的文章規劃如下:

1. Day 1~4:Spring Boot 簡介、開發環境安裝 #

在最開始的幾天,我們會先簡單認識 Spring Boot,並且安裝此系列文中會使用到的所有開發工具,為將來的 Spring Boot 之旅架設好開發環境。

2. Day 5~12:Spring 框架的特性 - IoC 和 AOP #

架設好環境之後,接著就會進到第二部分,介紹 Spring 框架中兩個非常重要的特性:IoC 和 AOP。

IoC 和 AOP 是 Spring 框架裡的核心技術,幾乎所有 Spring 的功能,都是建立在這兩大特性之上,因此如果能夠掌握好這兩大特性,能夠為將來的 Spring Boot 之旅打下良好的基礎。

3. Day 13~23:Spring MVC 介紹 #

介紹完 Spring 框架的核心特性之後,接著就會進到第三部分,介紹 Spring MVC 的相關知識。

Spring MVC 的用途是和前端溝通,因此在這個章節裡,除了會介紹 Spring MVC 的基本用法之外,同時也會介紹許多通用的網路知識,像是 Http 協議、Json、RESTful.等等,讓大家了解前端和後端之間的溝通方式。

4. Day 24~28:Spring JDBC 介紹 #

了解了 Spring MVC 的用法之後,接著會進到第四部分,介紹 Spring JDBC 的相關知識。

不同於前面的 Spring MVC 是和前端溝通,Spring JDBC 的主要功能是和資料庫進行溝通,因此當介紹完這部分之後,大家就能夠在 Spring Boot 中去操作資料庫,進而取得到相關的數據了。

5. Day 29:實戰演練:打造簡易的圖書館系統 #

前面的四個部分都是偏向功能的介紹,而第五部分則是會安排是一個實戰演練,實際的去整合前面四個部分所學到的知識,打造出一個簡易的圖書館系統出來。

所以透過最後的這個實戰練習,希望能幫助大家更好的了解、活用 Spring Boot 的知識!

Final. Day 30:Spring Boot 零基礎入門總結 #

此系列文的最後一天會來做個大總結,詳細列出我們在這 30 天內都介紹了哪些內容,也會補充 Spring Boot 後續的學習路徑,提供給大家參考。

總結 #

這篇文章我們先介紹了什麼是 Spring Boot,也介紹了前端和後端的區別、以及框架的概念,讓大家先對 Spring Boot 有一個簡單的認識。

那麼下一個文章,我們就會接著來進行環境設定,為將來的 Spring Boot 之旅架設好開發環境,那我們就下一篇文章見啦!

相關連結 #