1 回答

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
可能您使用的不是 AspectJ,而是 Spring AOP。所以有幾點(diǎn)需要考慮:
通常 Spring AOP 方面
@Component
無(wú)論如何都在 s 上工作,而不是在非 Spring 的東西上。為此,您確實(shí)需要 AspectJ。因此,在某種程度上,您的 Spring AOP 方面無(wú)論如何都會(huì)尋找該注釋。Spring AOP 方面也應(yīng)該是
@Component
s,但會(huì)自動(dòng)排除在方面編織之外。在 AspectJ 中,您需要采取特殊的預(yù)防措施來(lái)排除一個(gè)方面編織另一個(gè)帶有與正常應(yīng)用程序代碼相同的注釋的方面。在將 Spring AOP 與完整的 AspectJ 結(jié)合使用的情況下,您需要考慮這一點(diǎn)。
現(xiàn)在關(guān)于您的 AOP 問(wèn)題,正如您已經(jīng)注意到的那樣,您不能通過(guò)@annotation()
切入點(diǎn)攔截帶注釋的類(lèi)中的連接點(diǎn)。您需要@within()
改用,例如:
@within(org.springframework.stereotype.Component)
請(qǐng)注意,這將攔截注釋類(lèi)中的所有連接點(diǎn),即在 Spring AOP 的情況下所有方法執(zhí)行。它不會(huì)攔截 bean 創(chuàng)建,如果您的日志消息表明這是您的目標(biāo)。
添加回答
舉報(bào)