1.什么是AOP?

这里引用百度百科的解释,如图

Spring AOP 小结

2.AOP的作用

AOP采用横向抽取机制,补充了传统纵向继承体系(OOP)无法解决的重复性代码优化(性能监视,事务管理,安全检查等),一句话概括就是:将业务逻辑和系统处理的代码(关闭连接、事务管理、日志处理等)解耦。重复性代码被抽取出来之后,维护起来更加方便。

3.AOP的实现

(1)AspectJ(一个Java实现的AOP框架),AspectJ主要采用的是编译期织入,在这个期间使用AspectJ的acj编译器(类似javac)把aspect类编译成class字节码后,在java目标类编译时织入。这种方式的缺点是过于复杂,破坏封装,需要专门的Java编译器。

(2)Spring 基于AspectJ的AOP实现(通过动态代理技术实现的 ),其实就是Spring+AspectJ的整合。以下是一个简单的demo。

 

(a)  添加Spring和AOP相关的依赖

Spring AOP 小结

Spring AOP 小结

(b)  编写接口,目标类和方法

Spring AOP 小结

Spring AOP 小结

(c)  编写配置文件,配置目标类

Spring AOP 小结

(d)  编写通知类和增强方法(基于XML方式实现)

Spring AOP 小结

(e)  配置文件中配置通知类和切面

Spring AOP 小结

(f)  测试

Spring AOP 小结

 

以下再用基于注解的方式实现AOP

(1)目标类和切面类

Spring AOP 小结

Spring AOP 小结

(2)配置文件

Spring AOP 小结

(3)测试

Spring AOP 小结

 

相关文章:

  • 2022-12-23
  • 2021-12-05
  • 2021-12-10
  • 2021-08-16
  • 2021-07-03
  • 2021-11-16
  • 2021-07-21
猜你喜欢
  • 2021-05-28
  • 2022-02-08
  • 2021-12-31
  • 2021-09-08
  • 2021-11-16
  • 2021-12-24
  • 2021-05-06
相关资源
相似解决方案