问题描述
如何修复代码?方面编译但不起作用。这样我就可以拦截list.add(new MyClass())方法并获取添加的对象?
@Component
public class AppField {
List<MyClass> list = new ArrayList<>();
public static void main(String[] args) {
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext("com.index.aoptest.field");
AppField bean = context.getBean(AppField.class);
bean.addIntoList();
}
public void addIntoList() {
// I want to intercept this method
list.add(new MyClass());
}
}
@Configuration
@EnableAspectJAutoproxy
public class ConfigField {
@Bean
public AspectField aspectField() {
return new AspectField();
}
}
@Aspect
public class AspectField {
//don't work
@pointcut("execution(boolean java.util.List.add(*)) && " +
"args(param) && " +
"within(com.index.aoptest.field.AppField)"
)
public void beforeSampleMethod(List<Object> param) {
}
@Before("beforeSampleMethod(param)")
public void printMes(List<Object> param) {
System.out.println(">>>>>>>>>>>>>>>>LOG>>>>>>>>>>>>>>>>");
}
// don't work
@Before("within(com.index.aoptest.field.AppField) && " +
"execution(* java.util.List+.add(*)) && " +
"args(obj)")
public void allMethods(JoinPoint joinPoint,Object obj) {
System.out.println("allMethods" + joinPoint.getSignature().getName());
}
}
我写了这段代码,但我没有足够的 AOP 工作经验
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)