Spring实战之面向切面的Spring

Spring实战读书笔记

第四章:面向切面的Spring

    Spring对AOP的支持在很多方面上借鉴了AspectJ项目,不过Spring对AOP的支持十分有限。由于SpringAOP构建在动态代理基础之上,所有Spring对AOP的支持局限于方法拦截。

切点表达式

  • 在SpringAOP中要使用AspectJ的切点表达式语言来定义切点,不过Spring只支持AspectJ切点指示器的一个子集。

  • 我们使用execution()指示器来配置切点。

  • 我们可以使用&&、||、!操作符来将多个切点表达式连接在一起。在XML文件内,我们可以使用‘and’、‘or’、‘not’来代替操作符。

  • Spring还引进了一个新的bean()指示器,他允许我们在切点表达式中使用bean的ID来标识bean。

使用注解创建切面

  • 首先定义切面:在类上面加上@Aspect注解,来声明这个类是一个切面。还有将这个类注入到SpringIOC容器中。

  • Spring可以使用AspectJ的注解来声明通知方法:@After、@Before、@AfterReturning、@AfterThrowing、@Around而且为了避免重复写相同的切点表达式,我们可以使用@Pointcut注解来声明一个切点表达式

  • 还要在config类中启用AspectJ注解的自动代理:使用@EnableAspectJAutoProxy注解,放在配置类的上面。如果使用XML方式的话,则使用<aop:aspectj-proxy />元素。

环绕通知的创建

处理通知中的参数

  • 利用args指示器可以获得方法中的参数,并传到通知中去。

在XML中声明切面

  • Spring提供了AOP命名空间让我们可以很好的通过XML文件来配置切面,有与注解相对应的<aop:before>、<aop:after>等等

  • 还可以使用<aop:pointcut>定义切点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值