spring之aspects包、aop包和aspectj包的简单梳理

稀里糊涂的分不清这三个包的关系到底是什么,因此查了一下写篇总结。
1、aop包本身具有完整的AOP实现,但是只会使用Cglib或者JDK动态代理,在类加载时通过动态代理织入(补充一句:spring容器会在创建被代理bean时会自动创建代理bean),其使用了aspectj的部分功能
2、aspectj提供了非常完善的AOP能力,可以编译时织入、编译后织入、加载时织入,几乎能在java class的任何时刻使用织入功能;

因此可以说aspectj包是对aop包的aop功能进行支持;

spring3.0以前实现aop需要3个包:

  • aopalliance-1.0.0.jar
  • aspectj.weaver-xx.RELEASE.jar
  • spring-aop-xx.jar
    spring4.0以后aopalliance并入spring-aop包,实现aop只需要2个包:
  • aspectj.weaver-xx.RELEASE.jar
  • spring-aop-xx.jar

SpingAOP具有一定面向切面具体实现,但在功能上弱于AspectJ,AspectJ结合aop包,则可以在IOC中使用完整的AOP功能(仅仅AspectJ是没有IOC的功能的),而Spring也提供了对AspectJ的扩展Spring-aspects.jar和 Spring-instrument.jar

参考链接:https://www.jianshu.com/p/a1950bbae852

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值