From 95a951bf76e56be3202c2e1460b5da52f1bc02bb Mon Sep 17 00:00:00 2001 From: icanci <1845666903@qq.com> Date: Fri, 21 May 2021 10:57:50 +0800 Subject: [PATCH] v1.0.6 --- pom.xml | 2 +- .../icanci/snow/spring/aop/AspectListExecutor.java | 5 ----- .../java/cn/icanci/snow/spring/aop/AspectWeaver.java | 12 ++++++------ .../snow/spring/inject/DependencyInjector.java | 2 +- .../processor/impl/ControllerRequestProcessor.java | 8 +------- .../mvc/processor/impl/PreRequestProcessor.java | 3 +-- .../impl/StaticResourceRequestProcessor.java | 6 +++--- .../java/cn/icanci/snow/spring/util/BeanUtil.java | 6 +++++- 8 files changed, 18 insertions(+), 26 deletions(-) diff --git a/pom.xml b/pom.xml index 9480feb..e66bb9a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.icanci snow-stack-spring - 1.0.5 + 1.0.6 jar diff --git a/src/main/java/cn/icanci/snow/spring/aop/AspectListExecutor.java b/src/main/java/cn/icanci/snow/spring/aop/AspectListExecutor.java index 4154995..95797d1 100644 --- a/src/main/java/cn/icanci/snow/spring/aop/AspectListExecutor.java +++ b/src/main/java/cn/icanci/snow/spring/aop/AspectListExecutor.java @@ -65,10 +65,7 @@ public class AspectListExecutor implements MethodInterceptor { public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { Object returnObject = null; collectAccurateMatchedAspectList(method); - System.out.println(sortAspectInfoList.size()); if (ValidationUtil.isEmpty(sortAspectInfoList)) { - System.out.println("proxy111:" + proxy); - System.out.println("args:" + args); returnObject = proxy.invokeSuper(obj, args); return returnObject; } @@ -91,8 +88,6 @@ public class AspectListExecutor implements MethodInterceptor { * @param method 方法 */ private void collectAccurateMatchedAspectList(Method method) { - System.out.println("size:" + sortAspectInfoList.size()); - System.out.println("me name:" + method.getName()); if (ValidationUtil.isEmpty(sortAspectInfoList)) { return; } diff --git a/src/main/java/cn/icanci/snow/spring/aop/AspectWeaver.java b/src/main/java/cn/icanci/snow/spring/aop/AspectWeaver.java index ab876c9..5369f54 100644 --- a/src/main/java/cn/icanci/snow/spring/aop/AspectWeaver.java +++ b/src/main/java/cn/icanci/snow/spring/aop/AspectWeaver.java @@ -17,10 +17,6 @@ package cn.icanci.snow.spring.aop; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - import cn.icanci.snow.spring.aop.anno.Aspect; import cn.icanci.snow.spring.aop.anno.Order; import cn.icanci.snow.spring.aop.aspect.AspectInfo; @@ -28,6 +24,10 @@ import cn.icanci.snow.spring.aop.aspect.DefaultAspect; import cn.icanci.snow.spring.core.BeanContainer; import cn.icanci.snow.spring.util.ValidationUtil; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + /** * @author icanci * @date Created in 2021/05/19 17:33 @@ -79,7 +79,7 @@ public class AspectWeaver { AspectInfo aspectInfo = new AspectInfo(orderTag.value(), defaultAspect, pointcutLocator); aspectInfoList.add(aspectInfo); } else { - //不遵守规范则直接抛出异常 + // 不遵守规范则直接抛出异常 throw new RuntimeException("@Aspect and @Order must be added to the Aspect class, and Aspect class must extend from DefaultAspect"); } } @@ -95,7 +95,7 @@ public class AspectWeaver { if (ValidationUtil.isEmpty(roughMatchedAspectList)) { return; } - //创建动态代理对象 + // 创建动态代理对象 AspectListExecutor aspectListExecutor = new AspectListExecutor(targetClass, roughMatchedAspectList); Object proxyBean = ProxyCreator.createProxy(targetClass, aspectListExecutor); beanContainer.addBean(targetClass, proxyBean); diff --git a/src/main/java/cn/icanci/snow/spring/inject/DependencyInjector.java b/src/main/java/cn/icanci/snow/spring/inject/DependencyInjector.java index 17bad7e..6300ce6 100644 --- a/src/main/java/cn/icanci/snow/spring/inject/DependencyInjector.java +++ b/src/main/java/cn/icanci/snow/spring/inject/DependencyInjector.java @@ -116,7 +116,7 @@ public class DependencyInjector { if (classSet.size() == 1) { return classSet.iterator().next(); } else { - //如果多于两个实现类且用户未指定其中一个实现类,则抛出异常 + // 如果多于两个实现类且用户未指定其中一个实现类,则抛出异常 throw new RuntimeException("multiple implemented classes for " + fieldClass.getName() + " please set @Autowired value to pick one"); } } diff --git a/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/ControllerRequestProcessor.java b/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/ControllerRequestProcessor.java index cd84f95..c4e2108 100644 --- a/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/ControllerRequestProcessor.java +++ b/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/ControllerRequestProcessor.java @@ -206,26 +206,20 @@ public class ControllerRequestProcessor implements RequestProcessor { invokeMethod.setAccessible(true); Object result; try { + log.info("invoke:{}{}", controller.getClass().toString(), invokeMethod); if (methodParams.size() == 0) { - System.out.println(controller.getClass()); - System.out.println(invokeMethod); result = invokeMethod.invoke(controller); - - System.out.println("ControllerRequestProcessor.invokeControllerMethod 1"); } else { result = invokeMethod.invoke(controller, methodParams.toArray()); - System.out.println("ControllerRequestProcessor.invokeControllerMethod 2"); } } catch (InvocationTargetException e) { // 如果是调用异常的话,需要通过e.getTargetException() // 去获取执行方法抛出的异常 - System.out.println("ControllerRequestProcessor.invokeControllerMethod 3"); throw new RuntimeException(e.getTargetException()); } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (Exception e) { - System.out.println("ControllerRequestProcessor.invokeControllerMethod 4"); throw new RuntimeException(e); } return result; diff --git a/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/PreRequestProcessor.java b/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/PreRequestProcessor.java index dafd491..36cb134 100644 --- a/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/PreRequestProcessor.java +++ b/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/PreRequestProcessor.java @@ -42,9 +42,8 @@ public class PreRequestProcessor implements RequestProcessor { requestProcessorChain.getRequest().setCharacterEncoding("UTF-8"); // 2.将请求路径末尾的/剔除,为后续匹配Controller请求路径做准备 // (一般Controller的处理路径是/aaa/bbb,所以如果传入的路径结尾是/aaa/bbb/, - // 就需要处理成/aaa/bbb) + // 就需要处理成/aaa/bbb) String requestPath = requestProcessorChain.getRequestPath(); - //http://localhost:8080/icanci-spring-framework requestPath="/" if(requestPath.length() > 1 && requestPath.endsWith("/")){ requestProcessorChain.setRequestPath(requestPath.substring(0, requestPath.length() - 1)); } diff --git a/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/StaticResourceRequestProcessor.java b/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/StaticResourceRequestProcessor.java index 3d7dd04..f27653c 100644 --- a/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/StaticResourceRequestProcessor.java +++ b/src/main/java/cn/icanci/snow/spring/mvc/processor/impl/StaticResourceRequestProcessor.java @@ -60,9 +60,9 @@ public class StaticResourceRequestProcessor implements RequestProcessor { */ @Override public boolean process(RequestProcessorChain requestProcessorChain) throws Exception { - //1.通过请求路径判断是否是请求的静态资源 webapp/static + // 1.通过请求路径判断是否是请求的静态资源 webapp/static if (isStaticResource(requestProcessorChain.getRequestPath())) { - //2.如果是静态资源,则将请求转发给default servlet处理 + // 2.如果是静态资源,则将请求转发给default servlet处理 // TODO 这里出现了谷歌浏览器不渲染图片的情况 defaultDispatcher.forward(requestProcessorChain.getRequest(), requestProcessorChain.getResponse()); return false; @@ -76,7 +76,7 @@ public class StaticResourceRequestProcessor implements RequestProcessor { * @return 返回是否可访问 */ private boolean isStaticResource(String path) { - System.out.println("path:" + path); + log.info("request path:{}", path); return path.startsWith(STATIC_RESOURCE_PREFIX); } } diff --git a/src/main/java/cn/icanci/snow/spring/util/BeanUtil.java b/src/main/java/cn/icanci/snow/spring/util/BeanUtil.java index d4d17ae..b293b21 100644 --- a/src/main/java/cn/icanci/snow/spring/util/BeanUtil.java +++ b/src/main/java/cn/icanci/snow/spring/util/BeanUtil.java @@ -33,7 +33,11 @@ public class BeanUtil { return o1.compareTo(o1); })); set.clear(); - // 去合并父子包 + // 只有一个直接返回 + if (basePackageList.size() == 1) { + return basePackageList; + } + // 合并父子包 for (int i = basePackageList.size() - 1; i > 0; i--) { String first = basePackageList.get(i); String next = basePackageList.get(i - 1); -- Gitee