zoukankan      html  css  js  c++  java
  • 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(); 
    }
    
    记得快乐
  • 相关阅读:
    Java正则表达式
    Java 字符串处理
    Number 和 Math 类
    Day05:集合操作——线性表(二) / 查找表 / 文件操作——File(一)
    Android IPC(进程间通信)Binder机制
    Android Service服务源码相关分析
    Android系统修改相关收集
    常用
    JAVA设计模式
    【转载】Reactor模式和NIO
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13837143.html
Copyright © 2011-2022 走看看