java自定義註解在service層不生效原因
阿新 • • 發佈:2018-12-14
在做對資料加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註解並沒有生效。