diff --git a/pom.xml b/pom.xml index 9480feb5bfe17e7224182a662fa33a605edde516..e66bb9a97afb908e37492333de619bd07c2c6bfc 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 4154995e5fbdd5f1f4516576dba7661f164e6a2c..95797d1006312b703b09f61cc77370b594fb1274 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 ab876c9874865fa31ce07561385a113b7dcf669b..5369f54507962b60ba08e5e4175853c830646556 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 17bad7e1976709566e246b0b506cc3b963973259..6300ce6903394f38d12e6192369e5e1ec47f1177 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 cd84f95deb136a90e52f15d49c2c23aabbbec285..c4e2108663482e31da60ac71499f2791624770c5 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 dafd491ddc64b895e49131f2207a03afe5674cf3..36cb134ef2dccc4b6e3acb61923f9c0b40b43889 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 3d7dd04508df1512ae5d69528fbca1bcb93d7c21..f27653cd69eb6c1fffc9103ef7a1902726f57f6a 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 d4d17ae0a0239349d25f43f46c149015d58330a0..b293b216ecacc154abb25274b8be278c2d9ab71e 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);