spring aop配置总结

引言

Spring aop支持@AspectJ注解的方式来配置切面,相比于手动配置xml且手动实现增强、切点的方式要方便很多。一般的配置流程如下:

1.配置xml

在Spring的xml配置文件里引入aop chema:

xmlns:aop="http://www.springframework.org/schema/aop"

<beans>里加上"<aop:aspectj-autoproxy>"

之后Spring容器会自动为那些加了@Aspect注解的component创建代理,织入切面。事实上,Spring内部依旧使用AnnotationAwareAspectJAutoProxyCreator完成了这部分工作,只是隐藏起来了。

如果需要使用CGlib针对类生成代理(jdk原生的代理只支持接口),在上述的配置项中增加属性:

proxy-target-class = true即可。

2.新建相应的切面类

只要加上@Component和@Aspect 注解,Spring容器会自动找到

3.切点逻辑

在方法上加@Pointcut 注解,可识别成切点,访问控制符(private、public protected)相应的表示切点可以被引用到的范围。

@Pointcut注解的value是AspectJ的切点语法,Spring支持大部分AspectJ语法。

4.增强逻辑

比较常用的有:@Before前置增强,@AfterReturning后置增强,@Around环绕增强,@AfterThrowing异常增强,@DeclareParants引介增强,@After final增强。

通过JoinPoint可以获取到连接点的相应信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本章内容: 面向切面编程的基本原理 通过POJO创建切面 使用@AspectJ注解 为AspectJ切面注入依赖 ...
    谢随安阅读 3,188评论 0 9
  • 因为工作需求,自己去了解一下aop并做下的记录,当然大部分都是参考他人博客以及官方文档。 目录 [关于 AOP](...
    forip阅读 2,289评论 1 20
  • **** AOP 面向切面编程 底层原理 代理!!! 今天AOP课程1、 Spring 传统 AOP2、 Spri...
    luweicheng24阅读 1,386评论 0 1
  • AOP实现可分为两类(按AOP框架修改源代码的时机): 静态AOP实现:AOP框架在编译阶段对程序进行修改,即实现...
    数独题阅读 2,335评论 0 22
  • 2017年6月23日打卡 周四,雨几乎下了一天一夜。陡然凉爽。 生活的真相,总是让人措手不及。 直到昨天,子冉才知...
    沈曼柔阅读 367评论 3 2