• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
你的小铃铛呀
博客园    首页    新随笔    联系   管理    订阅  订阅

自定义注解

1.定义某个方法的注解

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AccountAuth{}
AccountAuth这个名字可以知道这是一个产品权限的注解

2.实现这个注解

@Component
@Slf4j
@Aspect
public class AccountAuthAspect { 
     //这个地方填需要做那种类型的通知
    @AfterReturning(value = "AccountAuthPointCut()")   
    public void handle(){     
    } 
  
   @Pointcut("@annotation(xxx.xxx.xxx.xxx.xxx.xxx.AccountAuth)")  
   public void AccountAuthPointCut() {    
   }
}
AccountAuthAspect由类名即可知道这是一个产品权限的AOP有关的类,AccountAuthPointCut这个是一个切点的方法,@AfterReturning里面的value的值填的是你要
切割的方法,下面的handle是要进行切割处理的操作

3.在某个需要这个注解的方法上面加上这个注解即可@AccountAuth

 

补充说明:

AspectJ 支持 5 种类型的通知注解:

 

@Before: 前置通知, 在方法执行之前执行
@After: 后置通知, 在方法执行之后执行 。
@AfterRunning: 返回通知, 在方法返回结果之后执行
@AfterThrowing: 异常通知, 在方法抛出异常之后
@Around: 环绕通知, 围绕着方法执行

 


 

posted @ 2022-10-24 17:17  你的小铃铛呀  阅读(32)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3