1.创建目标接口和目标类(包含切点)
public interface TargetInterface {
public void print();
}
@Component("target")
public class TargetInterfaceImpl implements TargetInterface {
public void print() {
System.out.println("输出。。。。");
}
}
2.创建切面类(包含增强方法)
@Component("myAspect")
@Aspect
public class MyAspect {
@Before("execution(public void com.cx.anno.TargetInterface.print())")
public void before(){
System.out.println("前置增强。。。。。。。。。。");
}
@After("execution(* com.cx.anno.*.*(..))")
public void after(){
System.out.println("后置增强。。。。。。。。。。");
}
public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
System.out.println("环绕前增强。。。。");
Object proceed = proceedingJoinPoint.proceed(); //切点方法
System.out.println("环绕后增强。。。。");
return proceed;
}
}
3.将目标类和切面类的对象创建权交给Spring
4.配置织入关系,在切面类中添加相应注解
5.配置文件中,开启组件扫描,配置AOP自动代理
<!--配置组件扫描-->
<context:component-scan base-package="com.cx.anno"/>
<!--配置Aop自动代理-->
<aop:aspectj-autoproxy/>
注:
a.注解通知类型及语法