1. 程式人生 > >java自定義註解在service層不生效原因

java自定義註解在service層不生效原因

在做對資料加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)
    public int method2(..) {
        ... ...
    }
}

 如上程式碼,當呼叫method1時,發現method2註解並沒有生效。