Forráskód Böngészése

Young -> 增加责任链工具包测试

youngknowsum 2 éve
szülő
commit
fafad57163

+ 1 - 1
pom.xml

@@ -19,10 +19,10 @@
     <description>young spring support</description>
 
     <modules>
-        <module>support-demo</module>
         <module>spring-boot-dynamic-methods-starter</module>
         <module>spring-boot-easy-chain-starter</module>
         <module>spring-boot-support-core</module>
+        <module>spring-boot-support-demo</module>
     </modules>
 
     <properties>

+ 2 - 2
spring-boot-easy-chain-starter/src/main/java/cn/nosum/support/config/ResponsibilityChainAutoConfiguration.java

@@ -17,8 +17,8 @@ import cn.nosum.support.processor.ResponsibilityChainProcessor;
 public class ResponsibilityChainAutoConfiguration {
 
     @Bean
-    public ResponsibilityChainProcessor<? extends Processor> responsibilityChainProcessor() {
-        return new ResponsibilityChainProcessor<BaseContext>();
+    public ResponsibilityChainProcessor responsibilityChainProcessor() {
+        return new ResponsibilityChainProcessor<>();
     }
 
     @Bean

+ 9 - 1
support-demo/pom.xml

@@ -9,13 +9,14 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>support-demo</artifactId>
+    <artifactId>spring-boot-support-demo</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
@@ -26,6 +27,13 @@
             <artifactId>spring-boot-dynamic-methods-starter</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
+
+        <dependency>
+            <groupId>cn.nosum</groupId>
+            <artifactId>spring-boot-easy-chain-starter</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>

+ 3 - 3
support-demo/src/main/java/cn/nosum/Application.java

@@ -1,6 +1,6 @@
 package cn.nosum;
 
-import cn.nosum.support.processor.annotation.EnableDynamicClients;
+import cn.nosum.support.annotation.EnableDynamicClients;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@@ -9,8 +9,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  */
 @EnableDynamicClients
 @SpringBootApplication
-public class Application {
+public class SupportApplication {
     public static void main(String[] args) {
-        SpringApplication.run(Application.class, args);
+        SpringApplication.run(SupportApplication.class, args);
     }
 }

+ 9 - 0
spring-boot-support-demo/src/main/java/cn/nosum/chain/constants/ChainConstants.java

@@ -0,0 +1,9 @@
+package cn.nosum.chain.constants;
+
+/**
+ * @author Young
+ */
+public interface ChainConstants {
+
+    String CHAIN_GROUP_NAME = "chain_group_name";
+}

+ 16 - 0
spring-boot-support-demo/src/main/java/cn/nosum/chain/context/ChainContext.java

@@ -0,0 +1,16 @@
+package cn.nosum.chain.context;
+
+import cn.nosum.support.chain.BaseContext;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 责任链上下文.
+ *
+ * @author Young
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ChainContext extends BaseContext {
+    private String name;
+}

+ 25 - 0
spring-boot-support-demo/src/main/java/cn/nosum/chain/controller/ChainController.java

@@ -0,0 +1,25 @@
+package cn.nosum.chain.controller;
+
+import cn.nosum.chain.constants.ChainConstants;
+import cn.nosum.chain.context.ChainContext;
+import cn.nosum.support.processor.ResponsibilityChainProcessor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author Young
+ */
+@RestController
+public class ChainController {
+
+    @Autowired
+    private ResponsibilityChainProcessor<ChainContext> processor;
+
+    @GetMapping("call")
+    public void call() {
+        ChainContext context = new ChainContext();
+        context.setName("call");
+        processor.handle(context, ChainConstants.CHAIN_GROUP_NAME);
+    }
+}

+ 63 - 0
spring-boot-support-demo/src/main/java/cn/nosum/chain/handler/ChainHandler.java

@@ -0,0 +1,63 @@
+package cn.nosum.chain.handler;
+
+import cn.nosum.chain.constants.ChainConstants;
+import cn.nosum.chain.context.ChainContext;
+import cn.nosum.support.annotation.ResponsibilityChainMethod;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Young
+ */
+@Component
+public class ChainHandler {
+
+    @ResponsibilityChainMethod(groupName = ChainConstants.CHAIN_GROUP_NAME, order = 1, isReturn = true)
+    public boolean test1(ChainContext context) {
+        System.out.println("test1" + context.getName());
+        return true;
+    }
+
+    @ResponsibilityChainMethod(groupName = ChainConstants.CHAIN_GROUP_NAME, order = 2, isReturn = true)
+    public boolean test2(ChainContext context) {
+        context.setExecuteNextNode(false);
+        System.out.println("test2" + context.getName());
+        return true;
+    }
+
+    /**
+     * 测试返回false的情况,中断执行链
+     */
+    @ResponsibilityChainMethod(groupName = ChainConstants.CHAIN_GROUP_NAME, order = 3, isReturn = true)
+    public boolean test3(ChainContext context) {
+        System.out.println("test3" + context.getName());
+        return false;
+    }
+
+    @ResponsibilityChainMethod(groupName = ChainConstants.CHAIN_GROUP_NAME, order = 4, isReturn = true)
+    public boolean test4(ChainContext context) {
+        System.out.println("test4" + context.getName());
+        return true;
+    }
+
+    /**
+     * 没有放值的情况,默认返回true
+     */
+    @ResponsibilityChainMethod(groupName = ChainConstants.CHAIN_GROUP_NAME, order = 5)
+    public void test5(ChainContext context) {
+        System.out.println("test5" + context.getName());
+    }
+
+    /**
+     * 测试是否执行下一个节点
+     */
+    @ResponsibilityChainMethod(groupName = ChainConstants.CHAIN_GROUP_NAME, order = 6)
+    public void test6(ChainContext context) {
+        context.setExecuteNextNode(false);
+        System.out.println("test6" + context.getName());
+    }
+
+    @ResponsibilityChainMethod(groupName = ChainConstants.CHAIN_GROUP_NAME, order = 7)
+    public void test7(ChainContext context) {
+        System.out.println("test7" + context.getName());
+    }
+}

+ 4 - 3
support-demo/src/main/java/cn/nosum/client/DynamicClientTest.java

@@ -1,7 +1,8 @@
-package cn.nosum.client;
+package cn.nosum.dynamic.client;
 
-import cn.nosum.service.DynamicService;
-import cn.nosum.support.processor.annotation.DynamicClient;
+
+import cn.nosum.dynamic.service.DynamicService;
+import cn.nosum.support.annotation.DynamicClient;
 
 @DynamicClient(refType = DynamicService.class)
 public interface DynamicClientTest {

+ 2 - 2
support-demo/src/main/java/cn/nosum/controller/DynamicController.java

@@ -1,6 +1,6 @@
-package cn.nosum.controller;
+package cn.nosum.dynamic.controller;
 
-import cn.nosum.client.DynamicClientTest;
+import cn.nosum.dynamic.client.DynamicClientTest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;

+ 1 - 1
support-demo/src/main/java/cn/nosum/service/DynamicService.java

@@ -1,4 +1,4 @@
-package cn.nosum.service;
+package cn.nosum.dynamic.service;
 
 /**
  * @author Young

+ 4 - 4
support-demo/src/main/java/cn/nosum/service/impl/DynamicServiceImpl.java

@@ -1,8 +1,8 @@
-package cn.nosum.service.impl;
+package cn.nosum.dynamic.service.impl;
 
-import cn.nosum.service.DynamicService;
-import cn.nosum.support.processor.annotation.DynamicClass;
-import cn.nosum.support.processor.annotation.DynamicMethod;
+import cn.nosum.dynamic.service.DynamicService;
+import cn.nosum.support.annotation.DynamicClass;
+import cn.nosum.support.annotation.DynamicMethod;
 import lombok.extern.slf4j.Slf4j;
 
 /**