侧边栏壁纸
  • 累计撰写 781 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

通过注解配置

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 92 阅读 / 1,690 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 <!--  扫描指定包下面的注解  -->
<context:component-scan base-package="com"/>
 <!--  开启使用注解完成织入  -->
<aop:aspectj-autoproxy/>
</beans>

通知类
@Component
@Aspect  //代表这个类是一个通知类
public class MyAdvice {
@Pointcut(&quot;execution(* com.spring.aop.annotation.*ServiceImpl.*(..))&quot;) //切入点,匹配被切的类文件
public void pc(){
}

@Before(&quot;MyAdvice.pc()&quot;)
public void before(){
	System.out.println(&quot;前置通知&quot;);
}

@Around(&quot;MyAdvice.pc()&quot;)
public Object around(ProceedingJoinPoint jp) throws Throwable{ //不放行方法就拦截掉了
	System.out.println(&quot;环绕通知  前部分&quot;);
	
	Object result = jp.proceed();//调用目标方法
	
	System.out.println(&quot;环绕通知  后部分&quot;);
	return result;
}

@AfterThrowing(&quot;MyAdvice.pc()&quot;)
public void afterException(){
	System.out.println(&quot;异常拦截通知&quot;);
}

@After(&quot;MyAdvice.pc()&quot;)
public void after(){
	System.out.println(&quot;后置通知--目标方法发生异常,还会执行&quot;);
}

@AfterReturning(&quot;MyAdvice.pc()&quot;)
public void afterReturn(){
	System.out.println(&quot;后置通知  方法发生异常,不会执行&quot;);
}

}





0

评论区