Spring Aop 跨模块失效求助

查看 16|回复 0
作者:ftsland   
https://stackoverflow.com/questions/64814633/spring-aop-aspect-doesnt-work-in-multi-module-project
遇到一个需求需要把分布在各个模块的接口中返回的某些字段加密, 把切面 @Aspect 定义在了公共模块 common
业务模块 A,B 在 pom 依赖 common 模块, 参照 stackoverflow 的答案在 A,B 模块分别定义了 Config 类
切点使用自定义注解, 在公共模块中的接口(没错。。老代码里公共模块也有对外接口)切面生效了, 但是在 A,B 模块的接口切面一直不生效, 求助
//切面类
@AfterReturning(pointcut = "@annotation(cn.core.annotation.InfoEncrypt)", returning = "response")
public void afterReturning(JoinPoint jp, InfoEncryptResponse response) {
    LoggerEx.info("加密身份证,手机号开始");
    try {
        if (response != null && CollectionUtils.isNotEmpty(response.getInfoEncryptBeans())) {
            List needEncryptBeans = response.getInfoEncryptBeans();
            doEncrypt(needEncryptBeans);
        }
    } catch (Exception e) {
        LoggerEx.exception("AspectInfoEncrypt exception", e);
    }
}
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
@ComponentScan({"cn.module.a"})
public class AspectInfoEncryptConfigA {
    @Bean
    public AspectInfoEncrypt aspectInfoEncrypt() {
        return new AspectInfoEncrypt();
    }
}
您需要登录后才可以回帖 登录 | 立即注册

返回顶部