diff --git a/src/main/java/org/redkale/annotation/NonBlocking.java b/src/main/java/org/redkale/annotation/NonBlocking.java
index 2fdf29dc3..84ccd92da 100644
--- a/src/main/java/org/redkale/annotation/NonBlocking.java
+++ b/src/main/java/org/redkale/annotation/NonBlocking.java
@@ -6,7 +6,7 @@ package org.redkale.annotation;
import java.lang.annotation.*;
/**
- * 非阻塞模式标记, 标记在Service类和方法、Filter类、HttpServlet类上
+ * 非阻塞模式标记, 标记在Service类和方法、HttpServlet类上
* 一般情况下,没有显注此注解的方法视为阻塞时, 以下两种情况除外:
* 1、返回类型是CompletableFuture
* 2、返回类型是void且参数存在CompletionHandler类型
diff --git a/src/main/java/org/redkale/net/DispatcherServlet.java b/src/main/java/org/redkale/net/DispatcherServlet.java
index cc66d8c2c..e21623de8 100644
--- a/src/main/java/org/redkale/net/DispatcherServlet.java
+++ b/src/main/java/org/redkale/net/DispatcherServlet.java
@@ -12,7 +12,6 @@ import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Predicate;
import java.util.logging.Level;
import java.util.stream.Stream;
-import org.redkale.annotation.NonBlocking;
import org.redkale.boot.Application;
import org.redkale.util.*;
@@ -45,8 +44,6 @@ public abstract class DispatcherServlet mappings = new HashMap<>();
- private volatile boolean allFilterAsync = true;
-
private final List> filters = new ArrayList<>();
protected final ReentrantLock filtersLock = new ReentrantLock();
@@ -210,18 +207,12 @@ public abstract class DispatcherServlet> T removeFilter(Class filterClass) {
return removeFilter(f -> filterClass.equals(f.getClass()));
}
@@ -275,14 +266,6 @@ public abstract class DispatcherServlet
@@ -33,12 +33,16 @@ public abstract class Filter, P extends
public abstract void doFilter(R request, P response) throws IOException;
+ public abstract boolean isNonBlocking();
+
public void destroy(C context, AnyValue config) {
}
@Override
public int compareTo(Object o) {
- if (!(o instanceof Filter)) return 1;
+ if (!(o instanceof Filter)) {
+ return 1;
+ }
Priority p1 = this.getClass().getAnnotation(Priority.class);
Priority p2 = o.getClass().getAnnotation(Priority.class);
return (p2 == null ? 0 : p2.value()) - (p1 == null ? 0 : p1.value());
diff --git a/src/main/java/org/redkale/net/Response.java b/src/main/java/org/redkale/net/Response.java
index c3ce05eab..84ef082df 100644
--- a/src/main/java/org/redkale/net/Response.java
+++ b/src/main/java/org/redkale/net/Response.java
@@ -39,6 +39,8 @@ public abstract class Response> {
private volatile boolean inited = true;
+ protected boolean inNonBlocking = true;
+
protected Object output; //输出的结果对象
protected BiConsumer> recycleListener;
@@ -127,6 +129,7 @@ public abstract class Response> {
protected void prepare() {
inited = true;
+ inNonBlocking = true;
request.prepare();
}
@@ -151,6 +154,10 @@ public abstract class Response> {
return true;
}
+ protected boolean inNonBlocking() {
+ return inNonBlocking;
+ }
+
protected void refuseAlive() {
this.request.keepAlive = false;
}