Spring基于advisor配置aop过程解析
Y_wee 人气:01、目标类
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(); }
加载全部内容