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 之前,我們可以先來了解一下「前端」跟「後端」之間的差別、以及「框架」又是代表什麼意思

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

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

  • 前端:負責網頁的排版設計

    • 所以像是網頁中要使用什麼顏色的按鈕、按鈕要放在哪裡、標題大小要多大…等等,這些都是屬於前端的範疇
  • 後端:負責數據處理

    • 像是商品的價格是多少、每一筆評價的留言內容是什麼…等等,這些有關數據內容的,都是屬於後端的範疇

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

理解了前端和後端的概念之後,接著就可以介紹什麼是「框架」了

「框架」是什麼意思?

透過剛剛的介紹,現在我們知道,前端是負責網頁的排版設計,後端則是負責數據處理

在前端的世界中,其實是有非常多種的程式語言 (ex: Vue、React、Html+Css…),都可以去實作出網站的排版設計,而同樣的道理,在後端的世界裡面,也是有非常多種的程式語言,都可以去實作出數據處理的功能的

在後端的世界裡面,比較常被拿來使用的程式語言有 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 的好處在哪裡?他到底為我們提升了哪些開發的效率?以下一一介紹使用 Spring Boot 開發的優勢

優勢一:簡化 Spring 開發

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

又到了講古的環節XD,在很很很久以前傳統的 Spring 框架的開發中,其實是需要進行大量的 xml 配置,才能將 Spring 框架運行起來,而 Spring Boot 的推出,就是希望能夠解決 Spring 框架繁瑣配置的缺點

舉個例子來說的話,傳統 Spring 框架就是你有一堆車子的零件,但是你要自己手動把他們焊接起來這樣(而且你可能還會焊錯),而 Spring Boot 則是你直接走進去汽車店裡,直接花錢下單把車開走,相較起來當然是 Spring Boot 更簡單好用許多

大家也可以觀察一下 Spring Boot 這個單字,他其實就是「Spring」和「Boot」的組合字,Spring 所代表的就是 Spring 框架,而 Boot 所代表的,則是開機的意思

所以結合這兩個單字,「Spring Boot」所代表的意思,就是希望能提供一個按下開機鍵就可以使用的後端程式給你,並且在這個後端程式內部,就都是使用 Spring 框架的零件所組成的

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

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

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

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

這個功能是很大的優點,不過對初學 Spring Boot 的人可能反而是一個小缺點,因為太多東西都被 Spring Boot 預先設定好了,因此初學者可能會完全搞不懂現在是發生了什麼事情,不過只要好好的學習過相關設定之後,這個優點會轉變成非常強大的優勢

其他優勢

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

系列文章規劃

大致了解了前端和後端的概念,以及 Spring Boot 是什麼之後,接下來是介紹這 30 篇的系列文章安排

此系列文會分成 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 MVC 的相關知識

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

4. Day 24~28:Spring JDBC 介紹

接著進到第四章節這裡,則是會介紹 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 之旅架設好開發環境,那我們就下一篇文章見啦!

相關連結