Sprig学习D3-AOP

通知(advice),切点(pointcut),连接点(joinpoint)

  • 切点的写法
    @Aspect 声明一个切面
    @Before (“execution(* concert.Performance.perform(…)) && within(concert.)and bean(‘woodstock’)")
    @After ("execution(
    concert.Performance.perform(…)) && within(concert.)and bean(‘woodstock’)")
    @AfterReturning ("execution(
    concert.Performance.perform(…)) && within(concert.)and bean(‘woodstock’)")
    @AfterThorwing ("execution(
    concert.Performance.perform(…)) && within(concert.)and bean(‘woodstock’)")
    @Around ("execution(
    concert.Performance.perform(…)) && within(concert.*)and bean(‘woodstock’)”)

@PointCut 声明一个切点

@PointCut("execution(* concert.Performance.perform(int)) && within(concert.*)and bean('woodstock')")
public void performance(){};
-->
@Before ("performance")

@EnableAspectJAutoProxy + @Bean 启用注解的动态代理
<aop: aspectg-autoproxt/> + <bean class= " >

处理通知中的参数

@PointCut("execution(* concert.Performance.perform(...)) and args(trackNumber)")
public void performance(){};
@Before ("performance")
public void countTrack(int trackNumber){
}
  • 通过注解引入新功能
    @Aspect + @DeclarParents(value=“concert.Performance+”,defaultImpl=DefaultEncoreable.class)
    public static Encoreable encoreadble;
    +@Bean 声明
  • Xml文件配置
<aop:config>
	<aop:aspect ref="audience">
		<aop:before
		 	pointcut=""execution(* concert.Performance.perform(...)) && within(concert.*)and bean('
		 		woodstock')" mthod="takeseats/>
	</aop:aspect>
	<aop:pointcut id="performance" experssion="execution(
		* concert.Performance.perform(...)) and within(concert.*)and bean('woodstock')"/>声明一个切点
	<aop:around pointcut="performance" method="watchPerformance"/> 环绕通知
	<aop:pointcut id="trackCounter" expression="execution(* soundsystem.CompactDisc.
		playTrace(int) and args(traceNumber)"/>
	<aop:declare-parents
		type-matching="concerperformance+" implement-interface="concer.Encoreable"
		default-impl="concer.DefaultEncoreable"/>
</aop:config>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值