注解名称 |
描述 |
@Aspect |
用于定义一个切面 |
@Pointcut |
用于定义切入点表达式。在使用时还需要定义一个包含名字和任意参数的方法签名来表示切入点名称。实际上,这个方法签名就是返回一个void值,且方法体为空的普通方法 |
定义切面@Aspect
@Aspect用于定义一个切面
参数 |
描述 |
value |
每个子句表达式,默认为单例方面,有效值为“”(单例)、“perthis(...)”等 |
示例
@Aspect
@Component
public class Student {
…
}
定义切入点@Pointcut
- @Pointcut 注解,用来定义一个切点,即上文中所关注的某件事情的入口,切入点定义了事件触发时机
- @Pointcut 注解指定一个切点,定义需要拦截的东西,两个常用的表达式:一个是使用 execution(),另一个是使用 annotation()
参数 |
描述 |
value |
切入点表达式 |
argNames |
在没有调试信息的情况下编译时,或在运行时解释切入点时,通知声明中使用的任何参数的名称都不可用 |
示例
@Aspect @Component public class LogAspectHandler {
/** * 定义一个切面,拦截 com.mutest.controller 包和子包下的所有方法 */ @Pointcut("execution(* com.mutest.controller..*.*(..))") public void pointCut() {} } |