spring aop
2015-08-27 11:33:28 0 举报
spring aop流程
作者其他创作
大纲/内容
是Adviced接口中定义的方法直接反射获取method调用
创建ObjenesisCglibAopProxy调用其getProxy
MethodInterceptor或adapter支持
是
配置的target是否是接口?
否
Advisor(PrototypePlaceholderAdvisor)
DefaultPointcutAdvisor
创建JdkDynamicAopProxy调用其getProxy
createAopProxy
equals和hashCode方法直接调用代理类中重写的
拦截器invoke方法中对前进调用和拦截器加强方法按指定逻辑调用
adapter支持?
配置ProxyFactoryBean
遍历配置的interceptorNames
调用target目标类的对应方法(jdk反射获取method调用)
拦截器链(初始化一次)
加入
AopProxyFactory(在构造器中设定了默认的DefaultAopProxyFactory)
拦截器链遍历完?
是否是singleton?
AdviceInterceptor列表
IOC容器getBean获取advice实例
直接用name包装成PrototypePlaceholderAdvisor
Advisor链
拦截器链proceed前进调用
被调用时
AdvisorAdapterRegistry(默认DefaultAdvisorAdapterRegistry单例)
结束
FactoryBean被加载时调用其getObject
代理对象
Matcher匹配方法?
遍历每一个
动态代理
获取
cglib字节码技术
jdk是invoke方法拦截,cglib是intercept
0 条评论
下一页