一、切面aspect:将横切关注点逻辑进行模块化封装的实体对象
就类似与ServiceAspect类,注意切面是实体类对象
二、通知Advice:如果把aspect比作class的话,那么Advice好比class里面的方法,还定义了织入逻辑的时机。
三、连接点JoinPoint:允许Advice使用的地方,一个概念
springAOP默认只支持方法级别的JoinPoint
四、切入点PointCut:定义一系列规则对JoinPoint进行筛选
五、目标对象Target:符合PointCut条件,被织入横切逻辑的对象。
另外再说一下introduction-引入型advice
引入型advice如何使用
首先定义接口
public interface LittleUniverse {
void burningUp();
}
再定义实现类
public class LittleUniverseImpl implements LittleUniverse {
@Override
public void burningUp() {
System.out.println("-------------burningUp------");
}
}
最后在@Aspect注解标记的类中加入引入的注解
最后测试
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Entrance.class);
HiController hiController = (HiController)applicationContext.getBean("hiController");
hiController.handleRequest();
LittleUniverse littleUniverse = (LittleUniverse)hiController;
littleUniverse.burningUp();
打印结果:-------------burningUp------
表示有成功的调用littleUniverse实现类的burningUp()方法