前言
发现写着写着好像越来越偏离正轨了,果然还是知道得太少了;这篇算是MethodInterceptor
的第二篇了吧,本来没想写这篇文章的,但是看了看源码,颠覆我之前已有的认知,感觉还是得把这篇文章写出来;
正文
上一篇MethodInterceptor
的文章都是以配置注解的形式来将MethodInterceptor
注册生效,这次这篇将使用spring
原生的类或接口来将MethodInterceptor
注册并生效。
TestInterceptorAnnotation
先自定义注解TestInterceptorAnnotation
注解
1 |
|
TestInterceptor
写一个MethodInterceptor
的实现类TestInterceptor
:
1 |
|
AnnotationAdvisor
写一个AnnotationAdvisor
类,去继承AbstractPointcutAdvisor
类,代码如下:
1 |
|
这个代码比较多,基本上把上一篇的代码都带过来了,这里主要是注意构造切点的几个方法;
AnnotationBeanPostProcessor
最关键的来了,新建类AnnotationBeanPostProcessor
,继承AbstractBeanFactoryAwareAdvisingPostProcessor
:
1 |
|
总结
这篇文章主要参考的EnableAsync
源码的AsyncAnnotationBeanPostProcessor
类