zoukankan      html  css  js  c++  java
  • 使用注解配置 AOP

    一、使用注解(基于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;
        }
    }
    好好学习,天天向上。 努力工作,给自己的和家人一个满意的答案。。。。
  • 相关阅读:
    记一次file_get_contents报failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request的错
    记一次centos7下配置服务器的过程
    locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录
    VM12虚拟机Centos7配置动态IP的网络设置
    记录下防御SSH爆破攻击的经验(CentOS7.3)
    第6次实践作业 17组
    第5次实践作业
    第3次实践作业
    第2次实践作业
    第1次实践作业
  • 原文地址:https://www.cnblogs.com/axu521/p/10144626.html
Copyright © 2011-2022 走看看