這是建議
@AfterReturning(
pointcut = "execution(public java.util.List<me.mikholskiy.domains.Customer> me.mikholskiy.daos.CustomerDao.getAll())",
returning = "resultList")
public void adviceBeforeGetAllCustomersFromDatabase(JoinPoint joinPoint,
List<Customer> resultList) {
// ...
}
所以當我使用這個不帶引數的建議注釋時returning,它會按預期作業。但是當我想將回傳結果系結到這個建議時,什么也沒有發生。它甚至沒有執行。
這是此建議的目標方法:
@Override
public List<Customer> getAll() {
return sessionFactory.getCurrentSession()
.createQuery("from Customer", Customer.class)
.list();
}
我使用這個依賴項
org.springframework:spring-webmvc:5.3.17
org.springframework:spring-aspects:5.3.17
org.aspectj:aspectjweaver:1.9.7
uj5u.com熱心網友回復:
無法匹配型別List<Customer>,因為returning子句還將匹配限制為僅回傳指定型別的值的那些方法執行(Object或者在這種情況下是子型別,它將匹配任何回傳值)。
因此,在您的代碼中,而不是:
public void adviceBeforeGetAllCustomersFromDatabase(
JoinPoint joinPoint, List<Customer> resultList) {
...
嘗試:
public void adviceBeforeGetAllCustomersFromDatabase(
JoinPoint joinPoint, Object resultList) {
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/446014.html
標籤:爪哇 春天 方面j spring-aop
下一篇:SpringBoot反應式快取
