上篇文章Spring中AOP的使用讲到@EnableAspectJAutoProxy这个注解开启AOP,这个注解里面又引入了AspectJAutoProxyRegistrar(AspectJ自动代理注册类)这个类。
继续跟进源码,AspectJAutoProxyRegistrar是实现了ImportBeanDefinitionRegistrar这个接口,这个接口在Spring注入Bean的四种方式,看这一篇就够了这篇文章有提到,使用RootBeanDefinition创建Bean的定义,然后通过BeanDefinitionRegistry注册Bean。
class AspectJAutoProxyRegistrar implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(
AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
AopConfigUtils.registerAspectJAnnotationAutoProxyCreator