seam 的interceptor分析

1. componet.initialInstance()的时候,用javaassist设置JavaBeanInterceptor-》RootInterceptor作为MethodHandler
2. MethodHandler在调用某个方法的时候 createInvocationContext
3. InvocationContext包含了 method target param 和 List<Interceptor> (List为某种Component的拦截器列表,需要sort,Interceptor是AbstractInterceptor的wrapper)
4. 调用 InvocationContext.proceed()
5. proceed递归调用所有的Interceptor:
    proceed = InterceptorBefore + proceed + interceptorAfter
    直到所有的interceptor(wrap了AbstractInterceptor)都结束

你可能感兴趣的:(Interceptor)