java自定义注解在service层不生效原因

在使用Spring AOP实现数据Redis缓存时,遇到自定义注解只在Controller层生效,不在Service层生效的问题。经查找资料发现是Spring配置文件未扫描Service层导致。解决方法是修改配置,确保扫描到Service层。此外,还提到method2注解未生效的问题,参考相关文章已解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在做对数据加redis缓存时,我这面采用了Spring-Aop的方式通过切面将数据存放在redis中,但是业务场景是,当前端调用了controller层的接口时,会走一些签名校验,如果校验过了才会真正调用service层去取数据,所以我自己定义的注解加载controller层很显然不合适,最理想的状况就是在service层上面加注解。但是实际操作时发现根本不起作用,不走我自己定义的切面,只有在controller层加注解时才起作用

在网上找了很多很多资料,很少有我这种状况,偶然的机会看到一个人回复的问题和我的状况一样,废话不多说直接贴图

赶紧去找自己的spring.xml配置,发现果然时没有扫service层,加上后起作用了。

 

延伸一下,这是偶然看到的一个问题

interface A {
    int method1(..);
    int method2(..);
    ... ...
}

class AImpl implements A {
    @Override
    @CacheMM(second=600)      //这里的@CacheMM就是我实现的自定义缓存注解
    public int method1(..) {
        ... ...
        method2(..);
        ... ...
    }
    
    @Override
    @CacheMM(second=600)
    publ
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值