自定义注解
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: 环绕通知, 围绕着方法执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异