Spring AOP VS AspectJ

101 阅读1分钟
  1. Spring AOP

    1. 使用简单
    2. 仅支持对Spring容器管理的Bean的增强,非Spring容器管理的对象(如业务POJO等)无法被拦截
    3. 仅支持对方法级别的增强,无法对成员变量、getter&setter等进行增强
    4. 动态代理类在运行时生成
    5. 无法直接对方法内部调用进行增强
    6. 无需引入额外的依赖和插件
  2. AspectJ

    1. 使用相对复杂
    2. 可以对项目中所有对象进行增强
    3. 可以对类的方法、成员变量、getter&setter等都进行增强
    4. 动态代理类在编译时生成
    5. 可直接对内部调用进行增强
    6. 需要引入AspectJ的依赖和编译、织入插件