502 字
3 分鐘
【Spring:Spring Boot】建立一個 Spring Boot Application 的過程

  發現自己沒有可以隨便試一些東西的 Spring Boot 專案……那就來開一個吧,順便把自己的過程與疑惑(?)記錄下來。

1. 建立專案#

  • Spring Initializr
    • 也可以用 Intellij IDEA、SpringToolSuite 或是 VSCode 等 IDE 裡的工具,不過我個人喜歡用官網上這個。
  • 選擇選項
    • Project:Maven
    • Language:Java
    • Spring Boot(版本):挑較新、不是 SNAPSHOT 的版本,目前是 3.4.1
    • Project Metadata
      • Group:自己或公司的,package 上那一串
        • 原則是公司網址的倒過來
        • 自己個人的……我還沒建立自己的域名,應該無所謂吧 www
      • Artifact:這個 Application 的名稱
      • Description:這個 Application 的說明
      • Packaging:Jar
      • Java:挑最新的 LTS,目前是 21
    • Dependencies
      • 把需要用到的抓進來
      • 基礎
        • Spring Boot DevTools
          • 存檔時重新加載、禁用快取等方便開發時使用的功能
      • 根據需求
        • Web
          • Spring Web
        • ORM
          • Spring Data JPA
        • 資料庫 Driver
          • MS SQL Server Driver
        • 網頁模板引擎
          • Thymeleaf

2. 匯入 IDE#

  • 選擇「匯入 Maven Project」

3. 設定資料庫#

  • 準備好 login 資訊、資料庫和資料表
    • 命名原則
      • 資料表:複數,小寫 snake_case
      • 欄位:小寫 snake_case
  • 在 application.properties 加入 Datasource 設定:
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://localhost:1433;database=<記得換上對應資料庫的名稱>;encrypt=true;trustServerCertificate=true
spring.datasource.username=<使用者名稱>
spring.datasource.password=<密碼>
# 開發時可以加上,方便查看 Spring Data JPA 生成的 SQL 指令
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
- url 裡的「encrypt」指的是資料傳送是否加密;「trustServerCertificate」指的是是否信任憑證、若為 `false` 就要再做更多的驗證、也更安全——但是在自己玩的環境中就先免了吧。

4. 寫程式……#

  • Entity
    • 命名原則
      • class 名稱:大寫開頭的 CamelCase,單數
      • 屬性名稱:小寫開頭的 camelCase
    • 記得加上 @Table(name = "snake_case")、指定到資料庫裡命名原則不同的資料表
    • 不過屬性名稱沒關係,會自動對應到使用 snake_case 命名的欄位
  • Repository、Service、Controller……
    • RESTful API 命名原則:全小寫、以 - 分隔,複數

5. 打包#

Terminal window
mvn package

  這樣 target 資料夾下就會出現可執行的 jar 檔了。

參考資料#

  • ChatGPT