接口:
package spring.aop.aspectJ;
public interface FunctionServer {
void creatdDoc(int count);
void removeDoc(int count);
}
接口实现类:
package spring.aop.aspectJ;
public class FunctionServerImp implements FunctionServer {
@Override
public void creatdDoc(int count) {
System.out.println("创建了"+count+"对象。。。。。。。");
}
@Override
public void removeDoc(int count) {
System.out.println("删除了"+count+"对象。。。。。。。");
}
}
增强类:
package spring.aop.aspectJ;
import java.lang.reflect.Method;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.aop.MethodBeforeAdvice;
@Aspect
public class Porformant{
@Before("execution(* creatdDoc(..))")
public void before() {
System.out.println("方法调用前。。。。。。。");
System.out.println("输入的参数:"+"..........");
}
}
applicationContext.xml
<!--proxy-target-class="false"表示使用JDK方式,若为true表示CGLIB;如果为false但是没有提供接口,Spring也会自动选择CGLib模式--> <aop:aspectj-autoproxy proxy-target-class="false"></aop:aspectj-autoproxy> <bean id="targetFunctionServer" class="spring.aop.aspectJ.FunctionServerImp"></bean> <bean id="aspectPorformant" class="spring.aop.aspectJ.Porformant"></bean>
测试类:
package spring.aop.aspectJ;
import org.junit.Test;
import org.springframework.aop.aspectj.annotation.AspectJProxyFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AspectJDKTest {
static ApplicationContext context=null;
static{
context=new ClassPathXmlApplicationContext("applicationContext.xml");
}
@Test
public void aspectTest(){
FunctionServer functionServer=context.getBean("targetFunctionServer",FunctionServer.class);
functionServer.creatdDoc(10);
functionServer.removeDoc(20);
}
}
转载于:https://blog.51cto.com/qiangmzsx/1371081