簡體   English   中英

Spring AOP自動裝配異常

[英]Spring AOP Autowiring exception

我在項目中使用AspectJ。

@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" />

我出錯了

由以下原因引起:org.springframework.beans.factory.BeanCreationException:創建名稱為'useFoo'的bean時出錯:自動連接依賴項的注入失敗; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:無法自動連線字段:private Foo UseFoo.foo; 嵌套的異常是java.lang.IllegalArgumentException:無法將Foo字段UseFoo.foo設置為$ Proxy56

如果我刪除<bean id="fooaspect" class="FooAsspectj" />它將正常工作。

這可以通過使用以下方法解決

 <aop:aspectj-autoproxy proxy-target-class="true"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM