Spring AOP还涉及以下方面

1、元数据解析:
        AspectJAnnotationAdvisor和AspectJAfterAdvice等类用于解析和处理AspectJ注解,如@Aspect、@Before等。
        AspectMetadata类存储了关于切面的元数据,包括切点、通知和切面的优先级。

2、代理类型选择:
        AopProxyFactory负责选择合适的代理类型(JDK动态代理或CGLIB代理)。

3、通知的调用:
        ReflectiveMethodInvocation类是MethodInvocation接口的实现,它封装了实际的方法调用。在AopProxy的invoke()方法中,会调用ReflectiveMethodInvocation.proceed()来执行通知链。

4、代理工厂:
        ProxyFactoryBean和AdvisedSupport是创建代理对象的工厂,它们提供了配置和管理代理的接口。

5、目标源(TargetSource):
        目标源表示代理的目标对象,可以是静态的(如单例bean)或动态的(如AOP代理的类)。TargetSource接口定义了获取和设置目标对象的方法。

6、代理的类型检查:
        AopUtils类提供了一些静态方法,如isAopProxy(),用于检查对象是否是AOP代理。

7、自定义切点:
        用户可以通过实现Pointcut接口创建自定义的切点逻辑,而不是仅限于AspectJ表达式。

8、代理的生命周期:
        代理对象与被代理的目标对象具有相同的生命周期,由Spring容器管理。当bean销毁时,代理也会被销毁。

9、缓存支持:
        Spring AOP支持缓存注解,如@Cacheable、@CacheEvict和@CachePut,这些注解的处理由CacheInterceptor实现。

9、异步执行:
        Spring AOP也支持异步方法执行,通过@Async注解实现。AsyncExecutionInterceptor是处理异步调用的拦截器。

10、安全性集成:
        Spring Security可以通过AOP实现权限检查,SecurityContextHolderAwareRequestFilter和SecurityContextHolderAwareRequestInterceptor是两个关键组件。

11、事件发布:
        Spring的事件发布机制也可以看作是一种特殊的AOP应用,通过ApplicationEventPublisherAware和ApplicationEventPublisher接口实现。

        每个组件都有其独特的功能和实现,理解它们之间的交互对于深入理解Spring AOP至关重要。要获得更多信息,可以查阅Spring AOP的官方文档和源码:Spring Framework 中文文档 (springdoc.cn)

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值