-
java 代理模式与 JDK 代理
2017-05-30 12:52感谢指正。
文章里面的确写错了。那部分应该是ImageHandlerImpl.class.getInterfaces()
,表明传入的是其共同接口类的数组,等同于new Class[]{ImageHandler.class}
。经考虑后者写法更明确一些。已修正。 -
Latke 源码解析(二)IOC 部分
2017-05-02 22:44我又细看了看,感觉应该是这样:
创建 bean 的时候,把
javassistMethodHandler
与 bean 的一个属性proxyClass
关联起来设置到 bean 里了。这样当请求到来找到要执行的方法后,委托给javassistMethodHandler
的invoke
执行。实际方法也在里面执行了。具体可看看invoke
方法。handleInterceptor(invokingMehtodName, params, BeforeMethod.class); //实际方法 ret = proceed.invoke(proxy, params); handleInterceptor(invokingMehtodName, params, AfterMethod.class);
也就是只要是请求方法都会被此类的
invoke()
拦截。应该可使用@BeforeMethod,@AfterMethod
在方法前后做一些操作。
这部分具体细节我还没研究,。欢迎随时交流。 -
Latke 快速上手指南
2017-04-27 11:25比如这种情况
@RequestProcessing(value = "/test", method = HTTPRequestMethod.GET) public void test(final HTTPRequestContext context, String id ){ //处理 }
id 这个值会是空的,查看代码后在 Converters.$PathVariableConvert.convert 发现这行
Object ret = result.getMapValues().get(paramterName);
mapValues 为空直接走异常了,是否本身不支持这种传参或是版本等其他问题?