Spring - (5) AOP概述

AOP概述

1.是对传统OOP编程的一种补充
2.切面是一个可以自定义的特殊的类,里面封装了一系列横切关注点
3.因为可以设置横切关注点的运行地点和运行方式,所以可以将这些横切关注点统一用一个类管理,这个类就叫做切面,切面负责将横切关注点模块化

优点:

1.将非核心代码写在一个类,核心代码写在一个类,降低耦合性
2.各个模块更加整洁清晰,便于管理

AOP术语

横切关注点:从每个方法中抽取出来的非核心代码,它和通知的区别就是它不是具体的某个方法,而是从非核心代码分出来的概念,比如日志等。
切面:一个开发者自定义的类,用于封装横切关注点的类,切面有不同的实现方式,比如AspectJ,两者之间的关系就如同Java虚拟机规范和HotSpot之间的关系
在这里插入图片描述
通知:切面封装了通知,通知可以看做其内的那些特定的带有某些注解的方法
目标:被通知的对象
在这里插入图片描述
代理:切面被初始化后会为该切面对应的bean创建代理
连接点
切入点

AspectJ

简介

AspectJ:Java社区里最完整最流行的AOP框架。
在Spring2.0以上版本中,可以使用基于AspectJ注解或基于XML配置的AOP。

在Spring中启用AspectJ注解支持
  1. 导入包
    在这里插入图片描述
    源代码和Javadoc可以不用导入

  2. 引入aop名称空间
    在这里插入图片描述