现在的位置: 首页 > 编程语言 > 正文

SpringAOP中的注解配置详解

2020年02月13日 编程语言 ⁄ 共 1918字 ⁄ 字号 评论关闭

这篇文章主要介绍了SpringAOP中的注解配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

使用注解实现SpringAOP的功能:

例子:

//表示这是被注入Spring容器中的@Component//表示这是个切面类@Aspectpublic 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进行代理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: SpringAOP中的注解配置详解

以上就上有关SpringAOP中的注解配置详解的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.