package concert;
public interface Performance{
public void perform();
}
package concert;
@Aspect//表示Audience的实例是一个切面
public class Audience{
@Before("execution(**concert.Performance.perform(..))")
public void silenceCellPhones(){
//在perfrom方法执行之前
}
@Before("execution(**concert.Performance.perform(..))")
public void takeSeats(){
//在perfrom方法执行之前
}
@AfterReturning("execution(**concert.Performance.perform(..))")
public void silenceCellPhones(){
//在perfrom方法执行之后
}
@AfterThrowing("execution(**concert.Performance.perform(..))")
public void silenceCellPhones(){
//在perfrom方法抛出异常之后
}
}
@Aspect//表示Audience的实例是一个切面
public class Audience{
@Pointcut("execution(**concert.Performance.perform(..))")
public void performance(){}
@Before("performance()")
public void silenceCellPhones(){
//在perfrom方法执行之前
}
@Before("performance()")
public void takeSeats(){
//在perfrom方法执行之前
}
@AfterReturning("performance()")
public void silenceCellPhones(){
//在perfrom方法执行之后
}
@AfterThrowing("performance()")
public void silenceCellPhones(){
//在perfrom方法抛出异常之后
}
}
@Configuration
@EnableAspectJAutoProxy//启动AspectJ自动代理
@ComponentScan
public class ConcertConfig{
}
//或者在配置文件中配置中添加
<aop:aspectj-autoproxy />
@Aspect//表示Audience的实例是一个切面
public class Audience{
@Pointcut("execution(**concert.Performance.perform(..))")
public void performance(){}
@Before("performance()")
public void watchPerformance(ProceedingJoinPoint jp){
//在方法之前执行
System.out.println(" beform the method is invoked");
jp.proceed()//控制权交给目标方法
//在方法之后执行
System.out.println(" after the method is invoked");
}
}
public class Audience{
@Pointcut("execution(**concert.Performance.perform(int))&&args(trackNumber)")
public void performance(){}
@Before("performance(trackNumber)")
public void watchPerformance(int trackNumber){
//截获传递给目标方法的参数并传递给切面中处理方法
System.out.println(trackNumber);
}
}
<aop:config>
<aop:aspect ref="audience">
<aop:before
pointcut="execution(**concert.Performance.perform())" method="silenceCellPhones"/>
<aop:before
pointcut="execution(**concert.Performance.perform())" method="takeSeats"/>
<aop:after-returning
pointcut="execution(**concert.Performance.perform())" method="applause"/>
<aop:after-throwing
pointcut="execution(**concert.Performance.perform())" method="demandRefund"/>
</aop:aspect>
</aop config>
<aop:config>
<aop:aspect ref="audience">
<aop:pointcut id="performance" expression="execution(**concert.Performance.perform())">
<aop:before
pointcut-ref="performance" method="silenceCellPhones"/>
<aop:before
pointcut="performance" method="takeSeats"/>
<aop:after-returning
pointcut="performance" method="applause"/>
<aop:after-throwing
pointcut="performance" method="demandRefund"/>
</aop:aspect>
</aop config>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有