码迷,mamicode.com
首页 > 其他好文 > 详细

使用注解配置 AOP

时间:2018-12-19 17:55:43      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:net   poi   RoCE   ret   自定义   2.3   throwable   object   void   

一、使用注解(基于Aspect)

  1、spring不会自动去寻找注解,必须告诉spring那个包下的类有注解

    1.1 先引入xmlns:context命名空间

<context:component-scan base-package="com.bjsxt.advice"></context:component-scan>

   2、@Component

    2.1 相当于<bean/>

    2.2 如果没有参数,把类名首字母变小写,相当于<bean id=" "/>

    2.3 也可以 @Component(" 自定义名称 ")

   3、实现步骤:

    3.1、在spring配置文件中设置注解在哪些包中

<context:component-scan base-package="com.bjsxt.advice,com.bjsxt.test"></context:component-scan>

    3.2、在Demo类中添加 @Componet

      3.2.1 在方法上添加 @Pointcut("  ") 定义切点

@Component
public class Demo {
    @Pointcut("execution(* com.bjsxt.test.Demo.demo1())")
    public void demo1(){
        System.out.println("demo1");
    }
}

    3.3、在通知类中配置

      3.3.1 @Component 类被spring管理

      3.3.2 @Aspect 相当于<aop:aspect/> 表示通知方法在当前类中

@Component
@Aspect
public class Advice {
    @Before("com.bjsxt.test.Demo.demo1()")
    public void mybefore(){
        System.out.println("前置通知111");
    }
    @After("com.bjsxt.test.Demo.demo1()")
    public void myafter(){
        System.out.println("后置通知2222");
    }
    @AfterThrowing("com.bjsxt.test.Demo.demo1()")
    public void mythrow(){
        System.out.println("异常通知3333");
    }
    @Around("com.bjsxt.test.Demo.demo1()")
    public Object myarround(ProceedingJoinPoint p) throws Throwable{
        System.out.println("环绕前置");
        Object result = p.proceed();
        System.out.println("环绕后置");
        return result;
    }
}

 

使用注解配置 AOP

标签:net   poi   RoCE   ret   自定义   2.3   throwable   object   void   

原文地址:https://www.cnblogs.com/axu521/p/10144626.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!