SpringAOP中的注解配置详解

网友投稿 515 2023-07-14

SpringAOP中的注解配置详解

SpringAOP中的注解配置详解

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

使用注解实现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和@AfterRetuhttp://rning

*

* @After标注的方法会在切入点上的方法结束后被调用(不管是不是正常的结束).

* @AfterReturning标注的方法只会在切入点上的方法正常结束后才被调用.

* */

@After("myPointCut()")//在myPointCut()中查到的方法之后切入

public void afterTest(JoinPoint p){

System.out.println(p.getSignature().getName()+" after...");

}

@AfterReturning(flRZPRjgyk"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.oflRZPRjgykut.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配置:注意给例子中使用的其他的类上面也使用注解

注意:这样配置则是强制使用CGLIB进行代理

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring通过构造函数注入实现方法分析
下一篇:SpringBoot+Logback实现一个简单的链路追踪功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~