Spring AOP(七)之定义切入点

所谓定义切点,其实质就是为一个切入点表达式起一个名称,从而允许在多个增强处理中重用该名称。下面定义一个切入点。

@Aspect
public class SystemArchitecture
{
	@Pointcut("execution(* com.owenapp.service.impl.*.*(..))")
	public void myPointcut(){}
}

下面的切面类中将直接使用上面定义的myPointcut()切入点。

@Aspect
public class LogAspect
{
	// 直接使用SystemArchitecture切面类的myPointcut()切入点
	@AfterReturning(returning="rvt"
		, pointcut="SystemArchitecture.myPointcut()")
	// 声明rvt时指定的类型会限制目标方法必须返回指定类型的值或没有返回值
	// 此处将rvt的类型声明为Object,意味着对目标方法的返回值不加限制
	public void log(Object rvt)
	{
		System.out.println("获取目标方法返回值:" + rvt);
		System.out.println("模拟记录日志功能...");
	}
}

正如上面所看到的LogAspect.java中,该类可以直接使用SystemArchitecture类中定义的切点,这意味着其它切面类也可以自由使用SystemArchitecture类中定义的切点,这就很好地复用了切点所包含的切点表达式。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值