AOP是一种编程范式,一般适用于具有横切逻辑的场合,如访问控制、事务管理、性能监测等。最流行的两个框架是Sping AOP 和 AspectJ
AOP也称为面向切面的编程,将分散在各个方法中的重复代码提取出来,在程序运行时再将这些代码应用到需要执行的地方。
AOP将程序分解成多个切面,日志、事务、安全验证等这些通用的,散布在系统各处的需要在实现业务逻辑时关注的事情称为“方面”,将这些“方面”集中处理,在具体运行时 再由容器动态插入这些“方面”。
切面 Aspect、连接点 JoinPoint、切入点 Pointcut、增强处理 Advice、织入 Weaving
Spring会自动注入实例,把业务方法中的参数传给JointPoint,切面程序通过JoinPoint的getArgs()方法获得参数,处理业务逻辑。
前置通知、返回通知、异常通知和环绕通知。
@AspectJ是一个面向切面的框架,简化了SpringAOP的大量配置信息。