Java OutOfMemoryError Java Heap Space – Java 147
Java Heap Space 用於存儲物件實例,只要不斷地建立物件,隨著物件數量的增加,總容量超過堆的最大容量限制後,就會產生 Java OutOfMemoryError 的錯誤,模擬建立一個大小 100MB 的 byte 陣列,將其加入到一個 List 中,然後重複建立和加入過程,直到 JVM 拋出錯誤, Java 147 增加了範例,並透過 JUnit 4 來驗證產出結果。
Java Heap Space 用於存儲物件實例,只要不斷地建立物件,隨著物件數量的增加,總容量超過堆的最大容量限制後,就會產生 Java OutOfMemoryError 的錯誤,模擬建立一個大小 100MB 的 byte 陣列,將其加入到一個 List 中,然後重複建立和加入過程,直到 JVM 拋出錯誤, Java 147 增加了範例,並透過 JUnit 4 來驗證產出結果。
Java Hello World 在任何程式語言中,被視為在 console 上輸出的簡單程式,用於驗證執行環境是否已正確設置,以及是否已準備好開始開發實際應用程式, 本篇增加了範例,並透過執行來驗證產出結果。
Spring Boot Undertow 提供了另一種選擇,可以取代 Tomcat 內嵌 Server ,Spring Boot 168 EP 6-1 增加了 Undertow 的相依套件,並排除 Tomcat 套件。
Web TX 將把交易從 Service 抽離,獨立為單一類別,因內部調用 @Transactional 將不會有作用,加上交易隱含著鎖的概念,前置檢查、資料庫查詢等,將不寫在交易裡面,Spring Boot 168 EP 5-4 使用 Spring Data JPA 增加範例 ,並透過 JUnit 5 來驗證產出結果。
JUnit 5 AssertJ 在設計自動化時,遵守的核心原則是 Arrange-Actor-Assert,3A 原則,斷言工具直接影響到用例的執行效率,提供高可讀性、流式驗證、更直覺的判斷方法,Spring Boot 168 EP 12-3 增加了常見的 String 、 List 、 Map 、 Exception 等範例及採用 JUnit 5 單元測試來驗證產出結果。
JUnit 5 Mockito 在測試過程中,建立所需的模擬物件,模擬任何由 Spring 管理的 bean、或輸入參數、方法的返回值、拋出異常等,避免為了測試一個方法,建構了所有的相依賴物件,Spring Boot 168 EP 12-2 增加了相依套件及採用 JUnit 5 單元測試來驗證產出結果。
Log4j2 AsyncLogger 處理異步日誌輸出時,執行輸出與業務邏輯並不是在同一個執行緒中執行,而是使用了另一條執行緒處理操作,而處理業務邏輯的執行緒,就可以在不用等待的狀態下,立即執行後續的流程邏輯,同樣也支援各種級別的日誌,Spring Boot 168 EP 7-1 增加了 LMAX 的相依套件。
Spring AMQP RabbitMQ 用來設定佇列、交換器、路由等功能,採最小化配置,用極簡的代碼就能實現對 MQ 的操作訪問,Spring Boot 168 EP 21 增加了相依套件及 RabbitMQConfig 範例,並透過 JUnit 5 單元測試來驗證產出結果。
Spring Data MongoDB 提供了一種物件與關聯映射工具來管理 Java 應用中的關係資料,用極簡的代碼就能實現對資料庫的操作訪問,實現了 Multiple Databases 多資料庫的設定,Spring Boot 168 EP 20 增加了相依套件及 LogMongoDBConfig 範例,並透過 JUnit 5 單元測試來驗證產出結果。
HttpClient RestTemplate 取代原本的連線方式,因預設使用 Java HttpConnection,來調用遠端服務,HttpClient 擴展了更多的功能,因此 Spring Boot 168 EP 28-1 增加了 HttpClientRestTemplateConfig 範例,並透過 JUnit 5 單元測試來驗證產出結果。