注解方式:
@Aspect //定义切面
@Component //实例化该POJO,调用方法
public class Audience {
//方法内容不重要,本身只是一个标识,供@Pointcut注解依附
@Pointcut("execution(* org.aop.Perform.play())")
public void profPonit(){}
//直接引用该切点所依附的方法
@Before("profPonit()")
public void silenceCellphone(){
System.out.println("please silence cell phone");
}
@Before("profPonit()")
public void takeSeates(){
System.out.println("please take Seate");
}
@After("profPonit()")
public void applause(){
System.out.println("CLAP CLAP CLAP");
}
@After("profPonit()")
public void demandRefund(){
System.out.println("Refund refund");
}
}
配置方式:
<!-- 配置aop切面 -->
<aop:config>
<!-- 配置切入点 within表示在指定的包中 -->
<aop:pointcut id="pc" expression="execution(返回值 包.类.方法名(方法参数)) | within(类级别)"/>
<!-- 切面 = 通知 + 切入点 -->
<aop:advisor advice-ref="通知类" pointcut-ref="pc"/>
</aop:config>