JAVA全系列 教程
3762个小节阅读:7089.8k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
一般情况下,一个通知类中不管什么类型通知,都是针对一个切点的。每次在写这些切点的时候表达式都是比较长的。
这时可以编写一个空方法,空方法上面添加@Pointcut定义切点。其他通知方法直接引用这个空方法就可以了。
xxxxxxxxxx
@Aspect
@Component
public class DemoAdvice {
@Pointcut("execution(* com.bjsxt.annotation.DemoServiceImpl.demo())")
public void mypointcut(){
}
@Before("mypointcut()")
void before(){
System.out.println("before-pointcut");
}
}
而且不用担心不同类中有相同的@Pointcut表达式。
可以把DemoAdvice再复制一份,变为Demo2Advice。运行程序,依然可以正常执行,并不会报错
xxxxxxxxxx
@Aspect
@Component
public class Demo2Advice {
@Pointcut("execution(* com.bjsxt.annotation.DemoServiceImpl.demo())")
public void mypointcut() {
// 方法体内无论是否有内容,都不会被执行。
}
@Before("mypointcut()")
void before() {
System.out.println("before-pointcut2");
}
}