diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ExtensionServiceLoader.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ExtensionServiceLoader.java index 4a6d2058..52652223 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ExtensionServiceLoader.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ExtensionServiceLoader.java @@ -25,10 +25,8 @@ import fun.asgc.neutrino.core.annotation.Autowired; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.NonIntercept; import fun.asgc.neutrino.core.bean.SimpleBeanFactory; -import fun.asgc.neutrino.core.web.HttpRequestHandler; -import fun.asgc.neutrino.core.web.WebApplicationContext; -import fun.asgc.neutrino.core.web.WebApplicationServer; -import fun.asgc.neutrino.core.web.param.WebContextHolder; +import fun.asgc.neutrino.core.web.context.WebApplicationContext; +import fun.asgc.neutrino.core.web.context.WebContextHolder; /** * diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/HttpRequestHandler.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/HttpRequestHandler.java index b69d9bab..1de9c6b6 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/HttpRequestHandler.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/HttpRequestHandler.java @@ -30,9 +30,8 @@ import fun.asgc.neutrino.core.context.ApplicationConfig; import fun.asgc.neutrino.core.util.*; import fun.asgc.neutrino.core.web.annotation.RequestBody; import fun.asgc.neutrino.core.web.annotation.RequestParam; -import fun.asgc.neutrino.core.web.param.HttpContextHolder; -import fun.asgc.neutrino.core.web.param.HttpRequestParser; -import fun.asgc.neutrino.core.web.param.WebContextHolder; +import fun.asgc.neutrino.core.web.context.HttpContextHolder; +import fun.asgc.neutrino.core.web.context.HttpRequestParser; import fun.asgc.neutrino.core.web.router.DefaultHttpRouter; import fun.asgc.neutrino.core.web.router.HttpRouteParam; import fun.asgc.neutrino.core.web.router.HttpRouteResult; @@ -42,7 +41,6 @@ import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.http.*; import lombok.extern.slf4j.Slf4j; -import org.checkerframework.checker.units.qual.C; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/WebApplicationServer.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/WebApplicationServer.java index 35b77e29..6b5f5c45 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/WebApplicationServer.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/WebApplicationServer.java @@ -28,8 +28,8 @@ import fun.asgc.neutrino.core.annotation.Init; import fun.asgc.neutrino.core.context.ApplicationConfig; import fun.asgc.neutrino.core.context.ApplicationRunner; import fun.asgc.neutrino.core.util.*; -import fun.asgc.neutrino.core.web.param.HttpContextHolder; -import fun.asgc.neutrino.core.web.param.WebContextHolder; +import fun.asgc.neutrino.core.web.context.HttpContextHolder; +import fun.asgc.neutrino.core.web.context.WebContextHolder; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.Unpooled; import io.netty.channel.*; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/HttpContextHolder.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/HttpContextHolder.java similarity index 98% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/HttpContextHolder.java rename to neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/HttpContextHolder.java index 6586ee6f..71e8114f 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/HttpContextHolder.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/HttpContextHolder.java @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.web.param; +package fun.asgc.neutrino.core.web.context; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.http.FullHttpRequest; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/HttpRequestParser.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/HttpRequestParser.java similarity index 99% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/HttpRequestParser.java rename to neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/HttpRequestParser.java index 122935c0..23d53519 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/HttpRequestParser.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/HttpRequestParser.java @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.web.param; +package fun.asgc.neutrino.core.web.context; import fun.asgc.neutrino.core.util.ArrayUtil; import fun.asgc.neutrino.core.util.Assert; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/WebApplicationContext.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebApplicationContext.java similarity index 94% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/web/WebApplicationContext.java rename to neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebApplicationContext.java index d980c62f..38479c8d 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/WebApplicationContext.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebApplicationContext.java @@ -19,15 +19,16 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.web; +package fun.asgc.neutrino.core.web.context; import com.google.common.collect.Sets; import fun.asgc.neutrino.core.annotation.*; import fun.asgc.neutrino.core.bean.SimpleBeanFactory; import fun.asgc.neutrino.core.context.ApplicationContext; import fun.asgc.neutrino.core.context.ApplicationRunner; +import fun.asgc.neutrino.core.web.HttpRequestHandler; +import fun.asgc.neutrino.core.web.WebApplicationServer; import fun.asgc.neutrino.core.web.interceptor.ControllerGlobalInterceptor; -import fun.asgc.neutrino.core.web.param.WebContextHolder; import fun.asgc.neutrino.core.web.router.DefaultHttpRouter; import lombok.Data; import lombok.experimental.Accessors; @@ -57,7 +58,6 @@ public class WebApplicationContext implements ApplicationRunner { public void init() { this.webApplicationBeanFactory = new SimpleBeanFactory(applicationBeanFactory, "webApplicationBeanFactory"); this.webApplicationBeanFactory.init(); - // TODO 初始化路由信息 } @Destroy diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/WebContextHolder.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebContextHolder.java similarity index 98% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/WebContextHolder.java rename to neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebContextHolder.java index 80bd583b..5b59018a 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/param/WebContextHolder.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebContextHolder.java @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.web.param; +package fun.asgc.neutrino.core.web.context; import fun.asgc.neutrino.core.annotation.Autowired; import fun.asgc.neutrino.core.annotation.Component; @@ -32,7 +32,6 @@ import fun.asgc.neutrino.core.util.*; import fun.asgc.neutrino.core.web.annotation.RestController; import java.util.List; -import java.util.Set; import java.util.stream.Collectors; /** diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/interceptor/ControllerGlobalInterceptor.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/interceptor/ControllerGlobalInterceptor.java index 91ac26d3..4c8c6f6e 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/interceptor/ControllerGlobalInterceptor.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/interceptor/ControllerGlobalInterceptor.java @@ -24,16 +24,27 @@ package fun.asgc.neutrino.core.web.interceptor; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.Init; import fun.asgc.neutrino.core.annotation.NonIntercept; +import fun.asgc.neutrino.core.aop.Aop; import fun.asgc.neutrino.core.aop.Invocation; import fun.asgc.neutrino.core.aop.interceptor.*; +import fun.asgc.neutrino.core.bean.BeanWrapper; +import fun.asgc.neutrino.core.util.ReflectUtil; +import fun.asgc.neutrino.core.web.annotation.GetMapping; +import fun.asgc.neutrino.core.web.annotation.PostMapping; +import fun.asgc.neutrino.core.web.annotation.RequestMapping; +import fun.asgc.neutrino.core.web.context.WebContextHolder; +import lombok.extern.slf4j.Slf4j; +import java.lang.reflect.Method; import java.util.List; +import java.util.Set; /** * Controller全局拦截器 * @author: aoshiguchen * @date: 2022/7/27 */ +@Slf4j @NonIntercept @Component public class ControllerGlobalInterceptor implements Interceptor { @@ -48,7 +59,15 @@ public class ControllerGlobalInterceptor implements Interceptor { @Init public void init() { - // TODO + List beanWrapperList = WebContextHolder.getControllerBeanWrapperList(); + beanWrapperList.forEach(beanWrapper -> { + Set methods = ReflectUtil.getDeclaredMethods(beanWrapper.getType()); + methods.forEach(method -> { + if (method.isAnnotationPresent(GetMapping.class) || method.isAnnotationPresent(PostMapping.class) || method.isAnnotationPresent(RequestMapping.class)) { + Aop.intercept(method, this.getClass()); + } + }); + }); } @Override diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/router/DefaultHttpRouter.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/router/DefaultHttpRouter.java index d9fd7f26..264e2bb1 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/router/DefaultHttpRouter.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/router/DefaultHttpRouter.java @@ -30,7 +30,7 @@ import fun.asgc.neutrino.core.web.HttpMethod; import fun.asgc.neutrino.core.web.annotation.GetMapping; import fun.asgc.neutrino.core.web.annotation.PostMapping; import fun.asgc.neutrino.core.web.annotation.RequestMapping; -import fun.asgc.neutrino.core.web.param.WebContextHolder; +import fun.asgc.neutrino.core.web.context.WebContextHolder; import lombok.extern.slf4j.Slf4j; import java.io.InputStream; diff --git a/neutrino-core/src/test/java/fun/asgc/neutrino/core/web/test1/TestController.java b/neutrino-core/src/test/java/fun/asgc/neutrino/core/web/test1/TestController.java index b7189692..7e388e7c 100644 --- a/neutrino-core/src/test/java/fun/asgc/neutrino/core/web/test1/TestController.java +++ b/neutrino-core/src/test/java/fun/asgc/neutrino/core/web/test1/TestController.java @@ -23,9 +23,8 @@ package fun.asgc.neutrino.core.web.test1; import com.alibaba.fastjson.JSONObject; import fun.asgc.neutrino.core.annotation.Autowired; -import fun.asgc.neutrino.core.annotation.NonIntercept; import fun.asgc.neutrino.core.web.annotation.*; -import fun.asgc.neutrino.core.web.param.HttpContextHolder; +import fun.asgc.neutrino.core.web.context.HttpContextHolder; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/Test1Controller.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/Test1Controller.java index 3decf67d..31d94353 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/Test1Controller.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/Test1Controller.java @@ -25,7 +25,7 @@ import fun.asgc.neutrino.core.annotation.Autowired; import fun.asgc.neutrino.core.web.annotation.GetMapping; import fun.asgc.neutrino.core.web.annotation.RequestMapping; import fun.asgc.neutrino.core.web.annotation.RestController; -import fun.asgc.neutrino.core.web.param.HttpContextHolder; +import fun.asgc.neutrino.core.web.context.HttpContextHolder; import fun.asgc.neutrino.proxy.server.service.Test1Service; /**