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

完善拦截器功能

mxd 5 éve
szülő
commit
5fda1fc69c

+ 4 - 0
src/main/java/org/ssssssss/executor/RequestExecutor.java

@@ -42,6 +42,10 @@ public class RequestExecutor {
 
     private List<RequestInterceptor> requestInterceptors = new ArrayList<>();
 
+    public void addRequestInterceptor(RequestInterceptor requestInterceptor){
+        this.requestInterceptors.add(requestInterceptor);
+    }
+
     public void addValidator(IValidator validator) {
         this.validators.put(validator.support(), validator);
     }

+ 17 - 0
src/main/java/org/ssssssss/session/Statement.java

@@ -1,5 +1,8 @@
 package org.ssssssss.session;
 
+import org.ssssssss.utils.DomUtils;
+import org.w3c.dom.Node;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -27,6 +30,8 @@ public class Statement {
 
     private List<String> validates = new ArrayList<>();
 
+    private Node node;
+
     /**
      * XMLStatement对象
      */
@@ -79,4 +84,16 @@ public class Statement {
     public void setRequestBody(boolean requestBody) {
         this.requestBody = requestBody;
     }
+
+    public Node getNode() {
+        return node;
+    }
+
+    public void setNode(Node node) {
+        this.node = node;
+    }
+
+    public String getNodeData(String dataName) {
+        return DomUtils.getNodeAttributeValue(node, "data-" + dataName);
+    }
 }

+ 7 - 0
src/main/java/org/ssssssss/utils/S8XMLFileParser.java

@@ -68,6 +68,9 @@ public class S8XMLFileParser {
             functionStatement.setRequestMapping(DomUtils.getNodeAttributeValue(node, "request-mapping"));
             // 设置请求方法
             functionStatement.setRequestMethod(DomUtils.getNodeAttributeValue(node, "request-method"));
+            // 设置节点
+            functionStatement.setNode(node);
+
             // 设置ID
             functionStatement.setId(DomUtils.getNodeAttributeValue(node, "id"));
 
@@ -115,8 +118,12 @@ public class S8XMLFileParser {
         for (int i = 0, len = nodeList.getLength(); i < len; i++) {
             Node item = nodeList.item(i);
             SqlStatement sqlStatement = new SqlStatement();
+            // 设置ID
             sqlStatement.setId(DomUtils.getNodeAttributeValue(item, "id"));
+            // 设置XmlStatement
             sqlStatement.setXmlStatement(xmlStatement);
+            // 设置节点
+            sqlStatement.setNode(item);
             // 设置是否支持RequestBody
             sqlStatement.setRequestBody("true".equalsIgnoreCase(DomUtils.getNodeAttributeValue(item,"request-body")));
             String validate = DomUtils.getNodeAttributeValue(item, "validate");