• spring使用advisor配置aop


    spring使用advisor配置aop

    1、目标类

    package com.gec.target;
    
    public class Hadoop { 
        public void eatting() {
            System.out.println("大象正在吃东西 1"); 
            try {
                //耗时5秒 
                Thread.sleep(5000); 
            } catch (InterruptedException e) { 
                e.printStackTrace(); 
            } 
        }
    }
    

    2、增强类,此类必须要实现增强方位接口

    package com.gec.advice; 
    
    import org.springframework.aop.MethodBeforeAdvice; 
    import java.lang.reflect.Method; 
    
    public class BeforeMethodAdvice implements MethodBeforeAdvice { 
        @Override
    	public void before(Method method, Object[] objects, Object o) throws Throwable { 
            System.out.println("how are you"); 
        } 
    }
    

    3、配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xmlns:p="http://www.springframework.org/schema/p" 
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:util="http://www.springframework.org/schema/util"
           xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-4.3.xsd                                                    http://www.springframework.org/schema/util                                                                          http://www.springframework.org/schema/util/spring-util-4.3.xsd                          http://www.springframework.org/schema/context                                                                       http://www.springframework.org/schema/context/spring-context-4.3.xsd
    http://www.springframework.org/schema/aop                                                                       http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
    <aop:aspectj-autoproxy /> 
        <bean id="beforeMethodAdvice" class="com.gec.advice.BeforeMethodAdvice" /> 
        <bean id="hadoop" class="com.gec.target.Hadoop" /> 
        <aop:config> 
            <!--定义一个切面--> 
            <aop:advisor advice-ref="beforeMethodAdvice" pointcut="execution (* eatting(..))" /> 
        </aop:config> 
    </beans>
    

    4、测试

    public static void main(String[] args) { 
        ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml"); 
        Hadoop hadoop= (Hadoop) ctx.getBean("hadoop"); 
        hadoop.eatting(); 
    }
    
    记得快乐
  • 相关阅读:
    查看系统的所有port的状态
    python技巧26[python的egg包的安装和制作]
    python类库31[进程subprocess与管道pipe]
    [BuildRelease Management]hudson插件
    python类库31[使用xml.etree.ElementTree读写xml]
    开机自动运行VMWare
    python实例26[计算MD5]
    2021年最新大厂php+go面试题集(四)
    Jumpserver开源跳板机系统
    报错:ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or director(亲测可用)
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13837143.html
Copyright © 2020-2023  润新知