Spring AOP接口设计
2025-08-11 15:44:25 0 举报
Spring AOP接口设计
作者其他创作
大纲/内容
StaticMethodMatcher
<<接口>>Advisor
+ EMPTY_ADVICE:Advice= new Advice()+ getAdvice():Advice+ isPerInstance():boolean
<<接口>>Pointcut
+ Pointcut TRUE = TruePointcut.INSTANCE;+ getClassFilter():ClassFilter+ getMethodMatcher():MethodMatcher
JdkRegexpMethodPointcut
- compiledPatterns:Pattern[] = new Pattern[0]-compiledExclusionPatterns:Pattern[] = new Pattern[0]
ComposablePointcut
- classFilter:ClassFilter- methodMatcher:MethodMatcher
StaticMethodMatcherPointcutAdvisor
- advice:Advice- order:int
PerTargetInstantiationModelPointcut
- declaredPointcut:AspectJExpressionPointcut = defaultValue- preInstantiationPointcut:Pointcut- aspectInstanceFactory:LazySingletonAspectInstanceFactoryDecorator
AbstractPointcutAdvisor
- order:Integer
+ isPerInstance():boolean
AnnotationMatchingPointcut
TruePointcut
+ INSTANCE:static final TruePointcut =new TruePointcut()
+ getMethodMatcher() :MethodMatcher{return MethodMatcher.TRUE;}
<<接口>>ExpressionPointcut
getExpression():String
AbstractGenericPointcutAdvisor
- advice:Advice
+ setAdvice(Advice advice)+ getAdvice():Advice+ AbstractGenericPointcutAdvisor() {this.advice = EMPTY_ADVICE;}
ProxyCreatorSupport
aopProxyFactory:AopProxyFactory
<<接口>>InvocationHandler
<<接口>>Interceptor
AspectJProxyFactory
AdvisedSupport
AspectJAfterReturningAdvice
TransactionProxyFactoryBean
- transactionInterceptor:final TransactionInterceptor = new TransactionInterceptor()- pointcut:Pointcut
AbstractAspectJAdvice
ProxyConfig
- proxyTargetClass:boolean= false- optimize:boolean = falseopaque:boolean = falseexposeProxy:boolean = false- frozen:boolean = false
ProxyFactoryBean
JdkDynamicAopProxy
DynamicMethodMatcherPointcut
AspectJExpressionPointcut
<<接口>>MethodBeforeAdvice
<<接口>>AdvisorAdapter
+ supportsAdvice(Advice var1):boolean+ getInterceptor(Advisor var1):MethodInterceptor
<<接口>>Advice
MethodBeforeAdviceInterceptor
+ advice:final MethodBeforeAdvice
<<接口>>AfterReturningAdvice
TransactionAttributeSourcePointcut
AfterReturningAdviceAdapter
StaticMethodMatcherPointcut
- classFilter:ClassFilter
ThrowsAdviceInterceptor
+ throwsAdvice:final Object
AbstractExpressionPointcut
- location:String- expression:String
AbstractRegexpMethodPointcut
- patterns:String[] = new String[0]- excludedPatterns:String[] = new String[0]
<<接口>>AopProxyFactory
createAopProxy(AdvisedSupport var1):AopProxy
<<接口>>AfterAdvice
AbstractSingletonProxyFactoryBean
<<接口>>PointcutAdvisor
+ getPointcut():Pointcut
<<接口>>MethodInterceptor
+ invoke(@Nonnull MethodInvocation var1):Object
<<接口>>ThrowsAdvice
MethodBeforeAdviceAdapter
<<接口>>BeforeAdvice
ThrowsAdviceAdapter
ControlFlowPointcut
- clazz:lass<?>- methodName:String- evaluations:AtomicInteger
TrueMethodMatcher
+ INSTANCE:static final TrueMethodMatcher = new TrueMethodMatcher()
AspectJMethodBeforeAdvice
<<接口>>AopProxy
+ getProxy():Object+ getProxy(@Nullable ClassLoader var1):Object
CglibAopProxy
DefaultPointcutAdvisor
- pointcut:Pointcut
+ setPointcut(@Nullable Pointcut pointcut)+ getPointcut():Pointcut+ DefaultPointcutAdvisor() {this.pointcut = Pointcut.TRUE;}
NameMatchMethodPointcut
- mappedNames:List<String> = = new ArrayList()
<<接口>>MethodMatcher
AfterReturningAdviceInterceptor
+ advice:final AfterReturningAdvice
<<接口>>BeanFactoryAware
+ setBeanFactory(BeanFactory var1)
ProxyFactory
ObjenesisCglibAopProxy
DefaultAopProxyFactory
+ createAopProxy(AdvisedSupport config):AopProxy+ hasNoUserSuppliedProxyInterfaces(AdvisedSupport config):boolean
0 条评论
下一页