spring 之 AOP
阿新 • • 發佈:2020-12-18
基於註解開發切面
AspectJ aop開發的開源框架 支援註解開發和xml配置
aspectJ 註解開發簡例
• 要在 Spring 應用中使用 AspectJ 註解 , 必須在 classpath 下包含 AspectJ 類庫 : aopalliance.jar 、 aspectj.weaver.jar 和 spring-aspects.jar • 將 aop Schema 新增到 <beans> 根元素中 . • 要 在 Spring IOC 容器中啟用 AspectJ
<!-- 使 AspectJ 的註解起作用 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
切面類:
• 通知是標註有某種註解的簡單的 Java 方法 . • AspectJ 支援 5 種類型的通知註解 : – @Before: 前置通知 , 在方法執行之前執行 – @After: 後置通知 , 在方法執行之後執行 – @ AfterRunning : 返回通知 , 在方法返回結果之後 執行 – @ AfterThrowing : 異常通知 , 在方法丟擲異常之後 – @Around: 環繞通知 , 圍繞著方法執行@Aspect public class LoggingAspect { @Before("execution(具體切入點或者切入點表示式)") public void beforeMethod(JoinPoint joinPoint){ 此處實現切面需要實現的內容 } @After("execution(具體切入點或者切入點表示式) public void afterMethod(JoinPoint joinPoint){ 此處實現切面需要實現的內容 }
•最典型的切入點表示式時根據方法的簽名來匹配各種方法:
– execution * com.hd.cyz.ArithmeticCalculator