ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringAOP中的注解配置

2019-10-31 12:57:11  阅读:180  来源: 互联网

标签:myPointCut 配置 System println SpringAOP 注解 方法 public out


使用注解实现SpringAOP的功能:
例子:

//表示这是被注入Spring容器中的
@Component

//表示这是个切面类 @Aspect public class AnnotationHandler { /* * 在一个方法上面加上注解来定义切入点 * 这个切入点的名字就是这个方法的名字 * 这个方法本身不需要有什么作用 * 这个方法的意义就是:给这个 @Pointcut注解一个可以书写的地方 * 因为注解只能写在方法、属性、类的上面,并且方法名作为切入点的名字 * */ //简单来说就是将查到的方法用myPointCut()方法名代替 @Pointcut("execution(public * com.briup.aop.service..*.*(..))") public void myPointCut(){} //注:这里面的所有方法的JoinPoint类型参数都可以去掉不写,如果确实用不上的话 @Before("myPointCut()")//在myPointCut()中查到的方法之前切入 public void beforeTest(JoinPoint p){ System.out.println(p.getSignature().getName()+" before..."); } /* * @After和@AfterReturning * * @After标注的方法会在切入点上的方法结束后被调用(不管是不是正常的结束). * @AfterReturning标注的方法只会在切入点上的方法正常结束后才被调用. * */ @After("myPointCut()")//在myPointCut()中查到的方法之后切入 public void afterTest(JoinPoint p){ System.out.println(p.getSignature().getName()+" after..."); } @AfterReturning("myPointCut()") public void afterReturningTest(JoinPoint p){ System.out.println(p.getSignature().getName()+" afterReturning"); } @Around("myPointCut()")//在myPointCut()中查到的方法环绕切入 public Object aroundTest(ProceedingJoinPoint pjp)throws Throwable{ System.out.println(pjp.getSignature().getName()+" is start.."); //调用连接点的方法去执行 Object obj = pjp.proceed(); System.out.println(pjp.getSignature().getName()+" is end.."); return obj; } //在切入点中的方法执行期间抛出异常的时候,会调用这个 @AfterThrowing注解所标注的方法 @AfterThrowing(value="myPointCut()",throwing="ex") public void throwingTest(JoinPoint p,Exception ex){ System.out.println(p.getSignature().getName()+" is throwing..."+ex.getMessage()); } }

 


xml配置:注意给例子中使用的其他的类上面也使用注解

<aop:aspectj-autoproxy/>
<context:component-scan base-package="com.briup.aop"/>

<!-- 让Spring扫描注解 -->
<context:component-scan base-package="com.briup.aop"></context:component-scan>
<!-- 识别AspectJ的注解 -->
<aop:aspectj-autoproxy/>

 

注意:<aop:aspectj-autoproxy proxy-target-class="true"/>这样配置则是强制使用CGLIB进行代理

标签:myPointCut,配置,System,println,SpringAOP,注解,方法,public,out
来源: https://www.cnblogs.com/Magic-Li/p/11770544.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有