demonic_tears 2015-06-12 01:24 采纳率: 0%
浏览 807

AspectJ切点函数 target()的this()问题,在引介增强类时无法织入增强

配置:
aop:aspectj-autoproxy/


接口:

public interface Waiter {

public void greetTo(String clientName);
public void serveTo(String clientName);

}

public interface Seller {
int sell(String goods, String clientName);
}

实现类:
public class NaiveWaiter implements Waiter {
@Override
public void greetTo(String clientName) {
System.out.println("NaiveWaiter:greet To " + clientName + "...");
}
@Override
public void serveTo(String clientName) {
System.out.println("NaiveWaiter:serving " + clientName + "...");
}
}

public class SmartSeller implements Seller {

public int sell(String goods,String clientName) {
    System.out.println("SmartSeller: sell "+goods +" to "+clientName+"...");
    return 100;
}

}

增强切面:
@Aspect
public class EnableSellerAspect {
@DeclareParents(value = "com.NaiveWaiter", defaultImpl = SmartSeller.class)
public Seller seller;
}

@Aspect
public class TestAspect {
@AfterReturning("this(com.Seller)")
public void thisTest(){
System.out.println("thisTest() exectued!!!");
}
}

  • 写回答

1条回答 默认 最新

  • Gawin_Home 2019-10-31 10:00
    关注

    如果没有其他的失误,使用@DeclareParents Seller的方法要想被加强
    欠缺的是指定织入顺序
    https://blog.csdn.net/yangshangwei/article/details/77861658

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab求解平差
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?