以Java的職缺而言,Spring Boot可以說是主流使用的後端框架。說來慚愧,公司內部的系統只有近年新專案才有陸續以Spring Boot進行開發,因此想學就只好靠自己囉!
慶幸的是公司有Hahow for business 的企業合作,一系列完整的入門課程可以跟著慢慢看。
實際上,平時工作流程已經是git版控、maven管理套件,三不五時應付User端資料撈取,唯一的轉換只是熟悉框架及制式的開發規範依循,其他仰賴平時trace code跟debug養成的能力,搭配兩倍速講解後自行實作,快速上手新框架並不算太難。
時間點很剛好,在年初的時候freeCodeCamp也上傳了完整課程,講解的很深入。目前先看完了前8小時的基礎,筆記一下整體架構。
前端Client單純做http request/response發送,使用VScode extension內的thunderClient進行api測試 (會用的話,直接在terminal下curl指令也可以)
後端Server的RESTful API實作,依springboot專案常用架構進行分層
如果是使用IntelliJ,可以直接建立SpringBoot專案,會在背後幫你從Spring Initializr完成點選的配置並下載到指定位置。一般編輯器無安裝其他擴充套件下,可以直接到下列網站,進行基本配置後下載專案。
選好後可以直接點generate,產生專案的壓縮檔並下載。初次透過VScode打開解壓縮後的資料夾時,maven會把必要的依賴進行下載,會花比較多時間。
直接執行程式跑起來看看,缺少資料庫設定而無法繼續執行,因此需要修改一下application.properties內的設定檔,另外也可以改用yaml格式進行設定撰寫。
資料庫使用MySQL,VScode的擴充套件為Database Client JDBC,程式執行時連接到剛創建的資料庫demo_db。
重新回到程式進入點執行,log顯示Tomcat在8080 port開始運作,可以在瀏覽器輸入http://localhost:8080/進行確認
OK,伺服器有正常運作了,只是因為還沒有處理根目錄endpoint回傳的結果,因此出現預設的空白頁進行回傳,http狀態碼404。
為確保功能正常,實作一個endpoint在http://localhost:8080/student,於瀏覽器搜索時預設以get進行請求發送。
新增一個StudentController的類別,須加上@RestController進行註冊,讓Spring container管理bean的生命週期
getStudent方法使用@GetMapping,指定路徑到/student的請求都發來這裡進行處理,回傳Student物件。
使用record而不是原始的class,省去另外撰寫toString、equals、getter、setter等瑣碎的部分。
重新啟動程式確認一下結果。
Spring Boot內整包的依賴內有個第三方套件Jackson,在資料回傳給前端時,會將物件轉換成JSON格式進行回傳,不用自行再另外對物件序列化進行處理。
也可以使用thunderClient發送get request,得到同樣的結果。
至於資料庫存取的操作,JPA(Java Persistence API)使用要留到下一篇囉。