Logo

All Posts

  • Published on
    這篇文章深入探討了如何使用程式碼來自訂 Spring Security 的安全設定,包括記憶體中使用者資料的設定、密碼編碼、HTTP 請求授權設定,以及將使用者資料儲存到 H2 資料庫中。文章詳細介紹了如何使用 BCryptPasswordEncoder 來安全地儲存密碼,並展示了如何自訂 UserDetailsService 和配置 HttpSecurity 以實現更靈活的 API 端點存取控制。此外,還提供了在使用 Spring Security 後,如何安全地存取 H2 console 的相關設定。這些進階設定使應用程式更加安全和可擴展
  • Published on
    Spring Security 是一個功能豐富的安全框架,專門用於保護基於 Spring 的應用程式。本文介紹了 Spring Security 的基礎知識,包括身份驗證、授權、防護常見 Web 攻擊等主要功能。文章詳細說明了如何在 Spring Boot 中安裝和配置 Spring Security,並展示了預設設定、測試及 API 授權的實作方法。通過簡單配置,開發者可以為應用程式添加基本的安全防護
  • 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 撰寫測試。通過這些測試,確保程式碼的品質、可維護性和可靠性。學習如何模擬對象行為並驗證方法呼叫次數