1-环绕通知 目标方法执行之前执行/之后执行,可以实现对目标方法的控制
2-前置通知 目标方法执行之前
3-后置通知 目标方法执行之后
4-异常通知 目标方法出现异常时执行
5-最终通知(after) 无论何时都要执行
-------只有环绕通知才能控制目标方法
构成切面的需要哪些配置
切面 = 切入点(if) + 通知(对方法的扩展)
切入点的写法:
1-bean 按照具体的Bean拦截
2-within(包名.类名) 按照类拦截 粗粒度( 粗 )
3-excution(返回值类型 包名.类名.方法名(参考列表)) 细粒度( 细 )
4-annotation 注解形式
自定义注解 Cache_Find
@Target(ElementType.METHOD) //注解修饰范围 @Retention(RetentionPolicy.RUNTIME) //作用范围 public @interface Cache_Find { //key null自动生成一个动态key,!null使用用户自定义的key String key() default ""; int seconds() default 0;//0表示数据不过期 }