SpringBoot中AOP的使用
SpringBoot中切面的使用非常简单只需在类上添加@Aspect注解
如下我们定义一个Controller的切面。每次发送请求前,都会执行@Before注解下的方法
@Aspect @Component public class MyAspect { @Pointcut("execution(public * com.dpx.personalpractice.controller..*(..))") public void point(){} @Before("point()") public void before(){ System.out.println("Controller执行之前............"); } @After("point()") public void after(){ System.out.println("Controller执行之后after............"); } @AfterReturning("point()") public void afterReturning(){ System.out.println("Controller执行之后AfterReturning............"); } @AfterThrowing("point()") public void afterThrowing(){ System.out.println("Controller执行之后AfterThrowing............"); } }
其中执行顺序如下
try{ try{ //@Before method.invoke(..); }finally{ //@After } //@AfterReturning }catch(){ //@AfterThrowing }
@Around增强环绕通知,即切面方法执行前后都会执行。