From 1e668ce2386db693d9398f10220b04466daae3f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=91=E5=B9=B4=E6=A2=A6=E4=B8=8E=E7=A0=96?=
<2847127106@qq.com>
Date: Sat, 28 Sep 2024 15:29:38 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=B4=A3=E4=BB=BB=E6=A0=91?=
=?UTF-8?q?=E6=A8=A1=E5=BC=8F=E8=AE=BE=E8=AE=A1=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cloud-data-processing/pom.xml | 4 ++
.../data/processing/MyDataApplication.java | 3 +-
.../processing/controller/TestController.java | 11 +++-
.../data/processing/domain/StrategyEums.java | 62 +++++++++++++++++++
.../data/processing/domain/req/TestReq.java | 28 +++++++++
.../data/processing/domain/resp/TestResp.java | 24 +++++++
.../processing/strategy/StrategyHandler.java | 22 +++++++
.../strategy/abstractStrategyRouter.java | 56 +++++++++++++++++
.../strategy/branch/OneBranchStrategy.java | 38 ++++++++++++
.../strategy/branch/TwoBranchStrategy.java | 38 ++++++++++++
.../strategy/leaves/FourLeavesStrategy.java | 27 ++++++++
.../strategy/leaves/OneLeavesStrategy.java | 31 ++++++++++
.../strategy/leaves/ThreeLeavesStrategy.java | 27 ++++++++
.../strategy/leaves/TwoLeavesStrategy.java | 27 ++++++++
.../strategy/root/RootStrategy.java | 36 +++++++++++
.../src/main/resources/bootstrap.yml | 1 +
16 files changed, 432 insertions(+), 3 deletions(-)
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/domain/StrategyEums.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/domain/req/TestReq.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/domain/resp/TestResp.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/StrategyHandler.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/abstractStrategyRouter.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/OneBranchStrategy.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/TwoBranchStrategy.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FourLeavesStrategy.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/OneLeavesStrategy.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/ThreeLeavesStrategy.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/TwoLeavesStrategy.java
create mode 100644 cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/root/RootStrategy.java
diff --git a/cloud-data-processing/pom.xml b/cloud-data-processing/pom.xml
index 4d65352..b0649cc 100644
--- a/cloud-data-processing/pom.xml
+++ b/cloud-data-processing/pom.xml
@@ -11,6 +11,10 @@
cloud-data-processing
+
+ cloud-data-processing 数据处理模块
+
+
17
17
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/MyDataApplication.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/MyDataApplication.java
index 63c774a..f8e5fb5 100644
--- a/cloud-data-processing/src/main/java/com/muyu/data/processing/MyDataApplication.java
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/MyDataApplication.java
@@ -23,8 +23,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
public class MyDataApplication {
public static void main(String[] args) {
SpringApplication.run(MyDataApplication.class, args);
- System.out.println(KafkaConstants.KafkaGrop);
- System.out.println(KafkaConstants.KafkaTopic);
+
System.out.println("MyData 模块启动成功!");
}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/controller/TestController.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/controller/TestController.java
index 55320b8..fab66ea 100644
--- a/cloud-data-processing/src/main/java/com/muyu/data/processing/controller/TestController.java
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/controller/TestController.java
@@ -2,6 +2,9 @@ package com.muyu.data.processing.controller;
import com.muyu.common.kafka.constants.KafkaConstants;
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.root.RootStrategy;
import jakarta.annotation.Resource;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.messaging.MessageHeaders;
@@ -34,8 +37,14 @@ public class TestController {
e.printStackTrace();
System.out.println("同步消息发送失败: " + msg);
}
-
}
+ @Resource
+ private RootStrategy rootStrategy;
+
+ @PostMapping("/testStrategy")
+ public TestResp testStrategy(@RequestBody TestReq testReq) {
+ return rootStrategy.applyStrategy(testReq);
+ }
}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/StrategyEums.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/StrategyEums.java
new file mode 100644
index 0000000..b018e6c
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/StrategyEums.java
@@ -0,0 +1,62 @@
+package com.muyu.data.processing.domain;
+
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.StrategyHandler;
+import com.muyu.data.processing.strategy.branch.OneBranchStrategy;
+import com.muyu.data.processing.strategy.branch.TwoBranchStrategy;
+import com.muyu.data.processing.strategy.leaves.FourLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.OneLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.ThreeLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.TwoLeavesStrategy;
+import lombok.Getter;
+
+import java.util.Arrays;
+
+/**
+ * 策略选择枚举
+ *
+ * @Author: 胡杨
+ * @Name: StrategyEums
+ * @Description: 策略选择枚举
+ * @CreatedDate: 2024/9/28 上午11:59
+ * @FilePath: com.muyu.data.processing.domain
+ */
+
+@Getter
+public enum StrategyEums {
+ TEST1("加减法", new OneBranchStrategy()),
+ TEST2("乘除法", new TwoBranchStrategy()),
+ TEST1_1("加法", new OneLeavesStrategy()),
+ TEST1_2("减法", new TwoLeavesStrategy()),
+ TEST2_1("乘法", new ThreeLeavesStrategy()),
+ TEST2_2("除法", new FourLeavesStrategy());
+
+ private final String code;
+ private final StrategyHandler info;
+
+ StrategyEums(String code, StrategyHandler info) {
+ this.code = code;
+ this.info = info;
+ }
+
+ /**
+ * 鉴别参数是否是枚举的值
+ *
+ * @param code 需鉴别参数
+ * @return 如果存在返回结果turn, 否则返回false
+ */
+ public static boolean isCode(String code) {
+ return Arrays.stream(values())
+ .map(StrategyEums::getCode)
+ .anyMatch(c -> c.equals(code));
+ }
+
+ public static StrategyHandler getStrategy(String code) {
+ return Arrays.stream(values())
+ .filter(c -> c.getCode().equals(code))
+ .findFirst()
+ .orElseThrow(() -> new IllegalArgumentException("参数错误"))
+ .getInfo();
+ }
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/req/TestReq.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/req/TestReq.java
new file mode 100644
index 0000000..7a70bd4
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/req/TestReq.java
@@ -0,0 +1,28 @@
+package com.muyu.data.processing.domain.req;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 测试入参
+ *
+ * @Author: 胡杨
+ * @Name: TestReq
+ * @Description: 测试入参
+ * @CreatedDate: 2024/9/28 上午10:40
+ * @FilePath: com.muyu.data.processing.domain.req
+ */
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TestReq {
+ private Integer one;
+ private Integer two;
+
+ private String type1;
+ private String type2;
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/resp/TestResp.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/resp/TestResp.java
new file mode 100644
index 0000000..8f743e0
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/domain/resp/TestResp.java
@@ -0,0 +1,24 @@
+package com.muyu.data.processing.domain.resp;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 测试出参
+ *
+ * @Author: 胡杨
+ * @Name: TestResp
+ * @Description: 测试出参
+ * @CreatedDate: 2024/9/28 上午10:40
+ * @FilePath: com.muyu.data.processing.domain.req.resp
+ */
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TestResp {
+ private String resp;
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/StrategyHandler.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/StrategyHandler.java
new file mode 100644
index 0000000..99aa302
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/StrategyHandler.java
@@ -0,0 +1,22 @@
+package com.muyu.data.processing.strategy;
+
+/**
+ * 策略控制者接口
+ * @Author: 胡杨
+ * @Name: StrategyHandler
+ * @Description: 策略控制者接口
+ * @CreatedDate: 2024/9/28 上午9:35
+ * @FilePath: com.muyu.data.processing.strategy
+ */
+public interface StrategyHandler {
+
+ @SuppressWarnings("rawtypes")
+ StrategyHandler DEFAULT = t -> null;
+
+ /**
+ * 执行方法
+ * @param t 入参
+ * @return 返回结果
+ */
+ R apply(T t);
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/abstractStrategyRouter.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/abstractStrategyRouter.java
new file mode 100644
index 0000000..4c3b820
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/abstractStrategyRouter.java
@@ -0,0 +1,56 @@
+package com.muyu.data.processing.strategy;
+
+import jakarta.annotation.PostConstruct;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.Objects;
+/**
+ * 抽象策略路由
+ * @Author: 胡杨
+ * @Name: abstractStrategyRouter
+ * @Description: 抽象策略路由
+ * @CreatedDate: 2024/9/28 上午9:26
+ * @FilePath: com.muyu.data.processing.strategy
+ */
+@Slf4j
+@Component
+public abstract class abstractStrategyRouter {
+
+ /**
+ * 策略映射器, 指定入参与出参以决定策略处理者
+ * @param 策略入参
+ * @param 策略出参
+ */
+ public interface StrategyMapper{
+ // 通过入参获取对应策略处理方法,使用Map实现
+ StrategyHandler getHandler(T param);
+ }
+
+ /**
+ * 抽象注册方法
+ * @return
+ */
+ protected abstract StrategyMapper registerStrategy();
+
+ /**
+ * 默认策略处理者
+ */
+ @SuppressWarnings("unchecked")
+ private StrategyHandler defaultStrategyHandler = StrategyHandler.DEFAULT;
+
+
+ /**
+ * 选择策略处理者
+ * @param param 入参
+ * @return 策略处理结果
+ */
+ public R applyStrategy(T param) {
+ final StrategyHandler strategyHandler = registerStrategy().getHandler(param);
+ if (strategyHandler != null) {
+ return strategyHandler.apply(param);
+ }
+ // 使用默认策略处理者
+ return defaultStrategyHandler.apply(param);
+ }
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/OneBranchStrategy.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/OneBranchStrategy.java
new file mode 100644
index 0000000..aef6611
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/OneBranchStrategy.java
@@ -0,0 +1,38 @@
+package com.muyu.data.processing.strategy.branch;
+
+import com.muyu.data.processing.domain.StrategyEums;
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.StrategyHandler;
+import com.muyu.data.processing.strategy.abstractStrategyRouter;
+import com.muyu.data.processing.strategy.leaves.FourLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.OneLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.ThreeLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.TwoLeavesStrategy;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 1号分支策略方法实现
+ *
+ * @Author: 胡杨
+ * @Name: OneBranchStrategy
+ * @Description: 1号叶子策略方法实现
+ * @CreatedDate: 2024/9/28 上午11:50
+ * @FilePath: com.muyu.data.processing.strategy.impl
+ */
+
+@Slf4j
+@Component
+public class OneBranchStrategy extends abstractStrategyRouter implements StrategyHandler {
+ @Override
+ public TestResp apply(TestReq testReq) {
+ log.info("1号分支策略方法实现,参数1:{},参数2:{},执行方法:{}", testReq.getOne(), testReq.getTwo(), testReq.getType2());
+ return applyStrategy(testReq);
+ }
+
+ @Override
+ protected StrategyMapper registerStrategy() {
+ return param -> StrategyEums.getStrategy(param.getType2());
+ }
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/TwoBranchStrategy.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/TwoBranchStrategy.java
new file mode 100644
index 0000000..eea73af
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/TwoBranchStrategy.java
@@ -0,0 +1,38 @@
+package com.muyu.data.processing.strategy.branch;
+
+import com.muyu.data.processing.domain.StrategyEums;
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.StrategyHandler;
+import com.muyu.data.processing.strategy.abstractStrategyRouter;
+import com.muyu.data.processing.strategy.leaves.FourLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.OneLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.ThreeLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.TwoLeavesStrategy;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 2号分支策略方法实现
+ *
+ * @Author: 胡杨
+ * @Name: TwoBranchStrategy
+ * @Description: 1号叶子策略方法实现
+ * @CreatedDate: 2024/9/28 上午11:50
+ * @FilePath: com.muyu.data.processing.strategy.impl
+ */
+
+@Slf4j
+@Component
+public class TwoBranchStrategy extends abstractStrategyRouter implements StrategyHandler {
+ @Override
+ public TestResp apply(TestReq testReq) {
+ log.info("2号分支策略方法实现,参数1:{},参数2:{},执行方法:{}", testReq.getOne(), testReq.getTwo(), testReq.getType2());
+ return applyStrategy(testReq);
+ }
+
+ @Override
+ protected StrategyMapper registerStrategy() {
+ return param -> StrategyEums.getStrategy(param.getType2());
+ }
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FourLeavesStrategy.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FourLeavesStrategy.java
new file mode 100644
index 0000000..001ec8a
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FourLeavesStrategy.java
@@ -0,0 +1,27 @@
+package com.muyu.data.processing.strategy.leaves;
+
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.StrategyHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 4号处理者
+ *
+ * @Author: 胡杨
+ * @Name: FourLeavesStrategy
+ * @Description: 4号处理者
+ * @CreatedDate: 2024/9/28 上午11:54
+ * @FilePath: com.muyu.data.processing.strategy.leaves
+ */
+
+@Slf4j
+@Component
+public class FourLeavesStrategy implements StrategyHandler {
+ @Override
+ public TestResp apply(TestReq testReq) {
+ log.info("4号处理者实现,参数1:{},参数2:{},执行方法:{},结果:{}", testReq.getOne(), testReq.getTwo(), testReq.getType2(), (testReq.getOne()*1.0/testReq.getTwo()));
+ return new TestResp("执行4号处理者-除法");
+ }
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/OneLeavesStrategy.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/OneLeavesStrategy.java
new file mode 100644
index 0000000..9599332
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/OneLeavesStrategy.java
@@ -0,0 +1,31 @@
+package com.muyu.data.processing.strategy.leaves;
+
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.StrategyHandler;
+import com.muyu.data.processing.strategy.abstractStrategyRouter;
+import com.muyu.data.processing.strategy.branch.OneBranchStrategy;
+import com.muyu.data.processing.strategy.branch.TwoBranchStrategy;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 1号处理者
+ *
+ * @Author: 胡杨
+ * @Name: OneLeavesStrategy
+ * @Description: 1号处理者
+ * @CreatedDate: 2024/9/28 上午11:54
+ * @FilePath: com.muyu.data.processing.strategy.leaves
+ */
+
+@Slf4j
+@Component
+public class OneLeavesStrategy implements StrategyHandler {
+ @Override
+ public TestResp apply(TestReq testReq) {
+ log.info("1号处理者实现,参数1:{},参数2:{},执行方法:{},结果:{}", testReq.getOne(), testReq.getTwo(), testReq.getType2(), (testReq.getOne()+testReq.getTwo()));
+ return new TestResp("执行1号处理者-加法");
+ }
+
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/ThreeLeavesStrategy.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/ThreeLeavesStrategy.java
new file mode 100644
index 0000000..c28a57b
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/ThreeLeavesStrategy.java
@@ -0,0 +1,27 @@
+package com.muyu.data.processing.strategy.leaves;
+
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.StrategyHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 3号处理者
+ *
+ * @Author: 胡杨
+ * @Name: ThreeLeavesStrategy
+ * @Description: 3号处理者
+ * @CreatedDate: 2024/9/28 上午11:54
+ * @FilePath: com.muyu.data.processing.strategy.leaves
+ */
+
+@Slf4j
+@Component
+public class ThreeLeavesStrategy implements StrategyHandler {
+ @Override
+ public TestResp apply(TestReq testReq) {
+ log.info("3号处理者实现,参数1:{},参数2:{},执行方法:{},结果:{}", testReq.getOne(), testReq.getTwo(), testReq.getType2(), (testReq.getOne()*testReq.getTwo()));
+ return new TestResp("执行3号处理者-乘法");
+ }
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/TwoLeavesStrategy.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/TwoLeavesStrategy.java
new file mode 100644
index 0000000..1174ab7
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/TwoLeavesStrategy.java
@@ -0,0 +1,27 @@
+package com.muyu.data.processing.strategy.leaves;
+
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.StrategyHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 2号处理者
+ *
+ * @Author: 胡杨
+ * @Name: TwoLeavesStrategy
+ * @Description: 2号处理者
+ * @CreatedDate: 2024/9/28 上午11:54
+ * @FilePath: com.muyu.data.processing.strategy.leaves
+ */
+
+@Slf4j
+@Component
+public class TwoLeavesStrategy implements StrategyHandler {
+ @Override
+ public TestResp apply(TestReq testReq) {
+ log.info("2号处理者实现,参数1:{},参数2:{},执行方法:{},结果:{}", testReq.getOne(), testReq.getTwo(), testReq.getType2(), (testReq.getOne()-testReq.getTwo()));
+ return new TestResp("执行2号处理者-减法");
+ }
+}
diff --git a/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/root/RootStrategy.java b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/root/RootStrategy.java
new file mode 100644
index 0000000..9df6ce2
--- /dev/null
+++ b/cloud-data-processing/src/main/java/com/muyu/data/processing/strategy/root/RootStrategy.java
@@ -0,0 +1,36 @@
+package com.muyu.data.processing.strategy.root;
+
+import com.muyu.common.core.utils.StringUtils;
+import com.muyu.data.processing.domain.StrategyEums;
+import com.muyu.data.processing.domain.req.TestReq;
+import com.muyu.data.processing.domain.resp.TestResp;
+import com.muyu.data.processing.strategy.StrategyHandler;
+import com.muyu.data.processing.strategy.abstractStrategyRouter;
+import com.muyu.data.processing.strategy.branch.OneBranchStrategy;
+import com.muyu.data.processing.strategy.branch.TwoBranchStrategy;
+import com.muyu.data.processing.strategy.leaves.FourLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.OneLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.ThreeLeavesStrategy;
+import com.muyu.data.processing.strategy.leaves.TwoLeavesStrategy;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 策略路由实现
+ *
+ * @Author: 胡杨
+ * @Name: RootStrategy
+ * @Description: 策略路由实现
+ * @CreatedDate: 2024/9/28 上午10:39
+ * @FilePath: com.muyu.data.processing.strategy.impl
+ */
+
+@Slf4j
+@Component
+public class RootStrategy extends abstractStrategyRouter {
+ @Override
+ protected StrategyMapper registerStrategy() {
+ return param -> StrategyEums.getStrategy(param.getType1());
+ }
+
+}
diff --git a/cloud-data-processing/src/main/resources/bootstrap.yml b/cloud-data-processing/src/main/resources/bootstrap.yml
index 010e1a4..0cfae85 100644
--- a/cloud-data-processing/src/main/resources/bootstrap.yml
+++ b/cloud-data-processing/src/main/resources/bootstrap.yml
@@ -61,3 +61,4 @@ spring:
logging:
level:
com.muyu.system.mapper: DEBUG
+