2
我在我的項目中使用了AspectJ。Spring AOP Autowiring異常
@Aspect
Class FooAsspectj{
private static Logger log = LoggerFactory.getLogger(FooAsspectj.class);
@Pointcut("execution(* com.abc.Foo.getFoo(..))")
public void getFoo() { }
@Around("getFoo()")
public Object profileFoo(ProceedingJoinPoint pjp) throws Throwable {
long start = System.currentTimeMillis();
log.debug("Going to call the method.");
Object output = pjp.proceed();
log.debug("Method execution completed.");
long elapsedTime = System.currentTimeMillis() - start;
log.debug("Method execution time: " + elapsedTime + " milliseconds.");
return output;
}
}
Class Foo{
public void getFoo(String abc){
System.out.println("Hello Foo");
}
現在我有另一個類UseFoo,在我自動裝配Foo類
Class UseFoo{
@Autowired
private Foo foo;
}
我在applicationContext.xml中
<aop:aspectj-autoproxy />
<bean id="fooaspect" class="FooAsspectj" />
提出以下條目
我收到了e RROR
造成的:org.springframework.beans.factory.BeanCreationException: 錯誤創建名爲 'useFoo' 豆: 注射自動裝配依賴的失敗;嵌套的異常是 org.springframework.beans.factory.BeanCreationException:不能 autowire字段:private Foo UseFoo.foo; 嵌套的例外是java.lang.IllegalArgumentException異常:無法設置 富場 UseFoo.foo到 $ Proxy56
如果我刪除<bean id="fooaspect" class="FooAsspectj" />
它工作正常。