spring aop 中使用到的设计模式
参考链接:https://www.cnblogs.com/zuidongfeng/p/8707694.html
适配器模式
接口名/类名 | 核心方法 | 主要职责 |
---|---|---|
AdvisorAdapterRegistry | void registerAdvisorAdapter(AdvisorAdapter adapter) | 对象创建时会将MethodBeforeAdviceAdapter AfterReturningAdviceAdapter ThrowsAdviceAdapter 加入到适配器的全局集合中,也可调用方法加入 |
AdvisorAdapter | MethodInterceptor getInterceptor(Advisor advisor) | 通过实现此接口,用户可将自定义advice类型应用在spring AOP框架中 |
AdvisorAdapterRegistrationManager | Object postProcessAfterInitialization(Object bean, String beanName) | 实现BeanPostProcessor,在容器启动后会自动将待适配对象注册到AdvisorAdapterRegistry中,AdvisorAdapterRegistry默认DefaultAdvisorAdapterRegistry |
其中1个AdvisorAdapter 实现类代码:
class AfterReturningAdviceAdapter implements AdvisorAdapter, Serializable {
@Override
public boolean supportsAdvice(Advice advice) {
return (advice instanceof AfterReturningAdvice);
}
@Override
public MethodInterceptor getInterceptor(Advisor advisor) {
AfterReturningAdvice advice = (AfterReturningAdvice) advisor.getAdvice();
return new AfterReturningAdviceInterceptor(advice);
}
}
单例模式
接口名/方法名 | 核心方法 | 主要职责 |
---|