在面向切面编程(AOP)中,我们经常需要自定义切面来拦截方法来实现一些自定义操作,例如:记录操作日志。切面注解的属性值可能需要从方法调用的上下文(如方法参数、返回值、Session属性等)中动态获取。本文将利用SpEl自定义上下文,实现运行时在切面中支持使用SpEL表达式动态解析参数值。
大部分系统中,可能都会用到调用链模式,并且同时存在多个调用链。我们希望在使用时,可以自动完成调用链路的构建以及支持自动注入,从而减少代码的冗余,提高开发效率。本文将说明如何利用Spring
扩展点,实现调用链的抽象及节点自动注入。
某些场景下,我们希望异步执行业务方法,比如发送短信、邮件等,避免阻塞主线程,提高系统的吞吐量。本文将介绍,如何自定义注解实现类似@Async
的功能,并解决异步切面中无法使用除环绕通知的其他通知类型的问题。
在使用springboot test
做单元测试时,我们需要根据输出的日志内容进行断言。但是,spring
并没有直接提供可用的方式,本文将介绍如何在spring
单元测试中根据日志输出内容进行断言。