工廠模式(Factory Pattern) 目錄design pattern 以java 為例 什麼是工廠模式?用於隱藏對象創建的具體實現細節,讓程式設計可以專注於使用物件,而不需要知道物件是如何被創建的。這種模式的主要目的是透過「工廠」來管理物件的創建,提升程式的可擴展性與可維護性。 重構前所有的邏輯都可以靠if-else 解決,如果不行就再加一層(?) 12345678910111213 2024-12-20 design pattern #java #design pattern
Builder 的比較 builder 的相等情況範例 12345678910111213141516@Builder(toBuilder = true)public class User { private String username; private String email; private int age;}User user = User.builder() 2024-12-18 java #java #lombok
lombok lombokLombok 是一個 Java 庫,用於減少樣板代碼(boilerplate code)的生成,通過簡單的註解來自動生成常見的代碼,例如 getter、setter、equals()、hashCode()、toString()、構造方法等。 依賴Maven123456<dependency> <groupId>org.projectlombok</g 2024-12-18 java #java #lombok
使用Spring 連接zookeeper管理kafka ZookerperZookeeper 是一個分佈式協調服務,主要用於管理和協調分佈式系統中的各種配置信息、元數據和狀態信息。在 Apache Kafka 中,Zookeeper 用於管理 Kafka 集群的元數據,包括主題(Topic)、分區(Partition)、Broker 等信息。Kafka 使用 Zookeeper 來管理元數據和集群協調,但在新版本(如 Kafka 2.8)中開始移除對 2024-11-22 kafka #backend #spring #kafka
Apache Kafka Apache KafkaApache Kafka 是一個分佈式流處理平台,主要用於建立實時的數據管道和流應用程序。它具有高吞吐量、可擴展性和容錯性等特點。Spring提供了對 Kafka 的支持,通過 Spring Kafka,可以在 Spring 應用中方便地使用 Kafka 進行消息的生產和消費 配置pom.xml要在 Spring 應用中使用 Kafka,首先需要在 pom.xml 文件中添 2024-11-17 kafka #backend #spring #kafka
transactional-isolation @Transactional前文 isolationisolation 是 Spring @Transactional 註解中的一個屬性,用於設定事務的隔離級別。事務的隔離級別決定了事務在併發環境中如何與其他事務交互,從而避免資料不一致或資料競爭的問題。DEFAULT:使用後端數據庫的默認隔離級別。 在資料庫中,常見的隔離級別有: READ_UNCOMMITTED(未提交讀) READ_CO 2024-11-12 java #java #backend #spring
transactional-propagation @Transactional前文 propagation在 Spring 的 @Transactional 註解中,propagation 屬性控制著事務的傳播行為,決定了當一個方法在事務上下文中被調用時該如何處理事務。 Propagation.REQUIRED含義: 共享當前事務:如果當前存在事務,方法將在該事務中執行。 新建事務:如果當前沒有事務,將創建一個新的事務。 使用場景:適用於大 2024-11-11 java #java #backend #spring
transactional @Transactional@Transactional 是 Spring 框架中的一個註解,用於管理方法或類的事務行為。它允許開發者定義事務的邊界,確保在方法執行過程中,數據庫操作遵循 ACID 原則,以維護數據的一致性和完整性。 配置Spring 要配置@EnableTransactionManagement, SpringBoot 不用 因為SpringBoot 有自動配置的機制,如果使用 2024-11-10 java #java #backend #spring
JPQL 什麼是 JPQL?JPQL(Java Persistence Query Language)是專門為 JPA(Java Persistence API)設計的查詢語言。它是一種面向對象的查詢語言,讓開發者可以以 Java 對象和屬性的方式編寫查詢,而不是直接操作數據庫表。這意味著 JPQL 查詢的操作對象是 Java 實體類,而不是數據庫中的表。 JPQL 的特點 面向對象:查詢基於 Java 的 2024-11-09 sql #sql #mysql #hibernate
Spring Scope Spring Scope在 Spring 框架中,Scope(範圍)是用來定義 Bean 的生命週期和可用性範圍的設定。不同的 Scope 影響 Bean 的創建、存活和回收方式。 SingletonSingleton 表示 Spring 容器中的 Bean 只會有一個實例。 預設 Scope:當不指定 Scope 時,Spring 會使用 Singleton。 生命週期:在 Spring 容器 2024-11-08 java #java #backend #spring