diff --git a/core/src/main/java/thinkinjava/filter/FilterChain.java b/core/src/main/java/thinkinjava/filter/FilterChain.java index a6f12f9..94bff90 100644 --- a/core/src/main/java/thinkinjava/filter/FilterChain.java +++ b/core/src/main/java/thinkinjava/filter/FilterChain.java @@ -31,7 +31,7 @@ public Invoker buildFilterChain() { Invoker last = invoker; for (int i = filters.size() - 1; i >= 0; i--) { - last = new FilterWrapper(filters.get(i), invoker); + last = new FilterWrapper(filters.get(i), last); } // 第一个 return last; diff --git a/core/src/main/java/thinkinjava/filter/FilterWrapper.java b/core/src/main/java/thinkinjava/filter/FilterWrapper.java index 86b2238..133163c 100644 --- a/core/src/main/java/thinkinjava/filter/FilterWrapper.java +++ b/core/src/main/java/thinkinjava/filter/FilterWrapper.java @@ -11,24 +11,24 @@ */ public class FilterWrapper implements Invoker { - private Filter next; + private Filter filter; - private Invoker invoker; + private Invoker next; private ServiceConfig config; - public FilterWrapper(Filter next, Invoker invoker) { + public FilterWrapper(Filter filter, Invoker next) { this.next = next; - this.invoker = invoker; - this.config = invoker.getConfig(); + this.filter = filter; + this.config = next.getConfig(); } public Response invoke(Request args) { - if (next != null) { - return next.filter(invoker, args); + if (filter != null) { + return filter.filter(next, args); } else { - return invoker.invoke(args); + return next.invoke(args); } }