From 1df6a4bc234b011bb8da2d9bbafd759fa59428bb Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 5 Jan 2026 18:12:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor(order):=20=E4=BC=98=E5=8C=96=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E8=B4=AD=E4=B9=B0=E6=A3=80=E6=9F=A5=E5=99=A8=E7=9A=84?= =?UTF-8?q?=E5=BB=B6=E8=BF=9F=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在DuplicatePurchaseCheckerFactory类上添加@Lazy注解实现延迟加载 - 在NoCheckDuplicateChecker类上添加@Lazy注解实现延迟加载 - 在ParentResourceDuplicateChecker类上添加@Lazy注解实现延迟加载 - 在UniqueResourceDuplicateChecker类上添加@Lazy注解实现延迟加载 - 添加org.springframework.context.annotation.Lazy导入语句 - 通过延迟初始化提升应用启动性能 --- .../basic/order/factory/DuplicatePurchaseCheckerFactory.java | 2 ++ .../ycwl/basic/order/strategy/impl/NoCheckDuplicateChecker.java | 2 ++ .../order/strategy/impl/ParentResourceDuplicateChecker.java | 2 ++ .../order/strategy/impl/UniqueResourceDuplicateChecker.java | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/main/java/com/ycwl/basic/order/factory/DuplicatePurchaseCheckerFactory.java b/src/main/java/com/ycwl/basic/order/factory/DuplicatePurchaseCheckerFactory.java index fcf77045..78d3a31d 100644 --- a/src/main/java/com/ycwl/basic/order/factory/DuplicatePurchaseCheckerFactory.java +++ b/src/main/java/com/ycwl/basic/order/factory/DuplicatePurchaseCheckerFactory.java @@ -4,6 +4,7 @@ import com.ycwl.basic.order.strategy.IDuplicatePurchaseChecker; import com.ycwl.basic.product.capability.DuplicateCheckStrategy; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -18,6 +19,7 @@ import java.util.Map; * 2. 类型安全:根据枚举类型查找策略 * 3. 失败快速:找不到策略时抛出异常 */ +@Lazy @Slf4j @Service public class DuplicatePurchaseCheckerFactory { diff --git a/src/main/java/com/ycwl/basic/order/strategy/impl/NoCheckDuplicateChecker.java b/src/main/java/com/ycwl/basic/order/strategy/impl/NoCheckDuplicateChecker.java index 56587199..6f9098b6 100644 --- a/src/main/java/com/ycwl/basic/order/strategy/impl/NoCheckDuplicateChecker.java +++ b/src/main/java/com/ycwl/basic/order/strategy/impl/NoCheckDuplicateChecker.java @@ -4,6 +4,7 @@ import com.ycwl.basic.order.strategy.DuplicateCheckContext; import com.ycwl.basic.order.strategy.IDuplicatePurchaseChecker; import com.ycwl.basic.product.capability.DuplicateCheckStrategy; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; /** @@ -13,6 +14,7 @@ import org.springframework.stereotype.Component; * 检查逻辑: * 不执行任何检查,直接通过 */ +@Lazy @Slf4j @Component public class NoCheckDuplicateChecker implements IDuplicatePurchaseChecker { diff --git a/src/main/java/com/ycwl/basic/order/strategy/impl/ParentResourceDuplicateChecker.java b/src/main/java/com/ycwl/basic/order/strategy/impl/ParentResourceDuplicateChecker.java index 63ef97e5..4f6b70de 100644 --- a/src/main/java/com/ycwl/basic/order/strategy/impl/ParentResourceDuplicateChecker.java +++ b/src/main/java/com/ycwl/basic/order/strategy/impl/ParentResourceDuplicateChecker.java @@ -14,6 +14,7 @@ import com.ycwl.basic.pricing.enums.ProductType; import com.ycwl.basic.product.capability.DuplicateCheckStrategy; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.List; @@ -29,6 +30,7 @@ import java.util.List; * * SQL查询: WHERE order_id = ? AND product_type = ? */ +@Lazy @Slf4j @Component public class ParentResourceDuplicateChecker implements IDuplicatePurchaseChecker { diff --git a/src/main/java/com/ycwl/basic/order/strategy/impl/UniqueResourceDuplicateChecker.java b/src/main/java/com/ycwl/basic/order/strategy/impl/UniqueResourceDuplicateChecker.java index de6f0f66..9952af1d 100644 --- a/src/main/java/com/ycwl/basic/order/strategy/impl/UniqueResourceDuplicateChecker.java +++ b/src/main/java/com/ycwl/basic/order/strategy/impl/UniqueResourceDuplicateChecker.java @@ -14,6 +14,7 @@ import com.ycwl.basic.pricing.enums.ProductType; import com.ycwl.basic.product.capability.DuplicateCheckStrategy; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.List; @@ -29,6 +30,7 @@ import java.util.List; * * SQL查询: WHERE order_id = ? AND product_type = ? AND product_id = ? */ +@Lazy @Slf4j @Component public class UniqueResourceDuplicateChecker implements IDuplicatePurchaseChecker {