All Posts

  • Published on
    CORS(跨來源資源共享)是現代網路開發中的重要概念,允許不同來源的網頁請求資源。本文介紹了在 Spring Boot 中應用 CORS 的方法,包括使用 @CrossOrigin 註解和全局配置。@CrossOrigin 註解適用於特定控制器或方法,而全局配置則適用於整個應用程式。文章還提供了設置和測試 CORS 的實際步驟,並強調了 CORS 在安全性和靈活性方面的重要性。通過適當配置,CORS 能夠有效防止未經授權的存取,同時允許跨網域通信
  • Published on
    REST Assured 是一個強大的 Java 函式庫,用於測試 RESTful API。本文介紹了 REST Assured 的基本用法,包括設定前置條件、發送請求和驗證回應。透過 BDD 風格的測試,使程式碼更易讀。文章還討論了 REST Assured 與 Hamcrest 和 AssertJ 的整合,進一步提升測試的靈活性和表達力。最後,文章比較了 SpringBootTest 和 REST Assured 的優缺點,強調了 REST Assured 在 API 測試中的優勢及其應用場景
  • Published on
    SpringBootTest 是一個強大的測試工具,允許在測試環境中啟動完整的 Spring 應用程式,進行整合測試和 EndtoEnd 測試。本文介紹如何為應用程式實作 end-to-end 測試,包括設置測試 properties 文件、撰寫測試類別,並使用 TestRestTemplate 進行 HTTP 請求和驗證回應。通過這種測試方法,可以確保應用程式的各個組件正確協同工作,儘管相比單元測試更耗時和資源,但能捕捉到單元測試可能遺漏的問題,特別是在組件整合方面
  • Published on
    使用 Spring 框架的 DataJpaTest 進行 JPA 測試,專注於測試資料庫操作而無需設置完整應用程式。本篇文章介紹如何使用 @DataJpaTest 註解、自動配置記憶體資料庫、執行 @Entity 類別掃描及啟用 SQL 日誌記錄。透過測試 TodoRepository 的自定義查詢方法和 JPQL 方法,確保每個測試方法的初始狀態一致,並驗證查詢結果的正確性。這種方法不僅高效可靠,還能提高程式碼的可靠性,並在重構或優化時提供安全保障。
  • Published on
    使用 MockMVC 測試 Spring MVC 應用程式的控制器是有效的方法,它允許開發者模擬 HTTP 請求而無需啟動伺服器。本文介紹了如何使用 @WebMvcTest 註解來專門測試控制器,以及如何利用 @MockBean 模擬服務層行為,並通過 MockMvc 模擬 HTTP 請求。文中詳細展示了 CRUD 操作的測試案例,涵蓋了創建、查詢、更新和刪除待辦事項的各種情境,並強調了驗證回應狀態碼和內容的重要性。建議為每個控制器方法編寫全面的測試案例,以提高應用品質
  • Published on
    探索如何為 Spring Boot 應用程式撰寫單元測試。單元測試驗證程式碼的最小單位是否按預期運作。文章介紹 Spring Boot 測試工具如 @WebMvcTest、@DataJpaTest、@MockBean 和 @SpringBootTest,並使用 JUnit 5 和 Mockito 撰寫測試。通過這些測試,確保程式碼的品質、可維護性和可靠性。學習如何模擬對象行為並驗證方法呼叫次數
  • Published on
    本文深入探討了 Spring Data JPA 中的交易管理實現。文章首先介紹了交易管理的概念和 ACID 特性,然後詳細說明了如何使用 @Transactional 註解來實現交易控制。文章提供了具體的程式碼示例。此外,文章分析了交易管理的優缺點,包括保證資料一致性的優點,以及可能帶來的性能開銷等缺點。最後,文章提供了一些實務上的建議,如合理劃分交易邊界和避免長時間交易等。這篇文章為 Spring Boot 開發者提供了全面的交易管理實現指南,有助於提高應用程式的資料一致性和完整性
  • Published on
    本文深入探討了如何在 Spring Data JPA 中實現分頁和動態排序功能。文章首先介紹了分頁的實現方法,包括在程式碼中添加分頁方法,以及在 Controller 中使用 Pageable 物件來處理分頁請求。接著,文章詳細說明了如何實現動態排序,通過在控制器方法中添加排序參數,並使用 Sort 物件來定義排序規則。文章還提供了具體的程式碼示例和測試結果,展示了如何同時使用分頁和排序功能。最後,文章分析了分頁和動態排序的優缺點。這篇文章為 Spring Boot 開發者提供了全面的分頁和動態排序實現指南,有助於提高應用程式處理大量資料的能力。
  • Published on
    本文深入探討了 Spring Data JPA 中 JPQL(Java Persistence Query Language)的使用。文章首先介紹了 JPQL 的基本概念、規則以及與 SQL 的區別。接著,文章展示了如何在程式碼中使用 @Query 註解實現 JPQL 查詢,並詳細解釋了每個查詢的含義。文章還簡要介紹了如何使用原生 SQL 查詢。此外,文章分析了 JPQL 的優缺點。最後,文章提供了一系列最佳實踐建議。這篇文章為 Spring Boot 開發者提供了全面的 JPQL 使用指南,有助於提高查詢的靈活性和效率