即時使用檢票口,因爲現在幾個月,我最近開始掃視檢票口。 因此Im相當吉斯noobie :)無限循環當使用檢票口
每個頁面有一個服務類(可以稱之爲DoService),其管理對象的數量(即用戶)... 這些對象也得到了一些原因,該服務類的引用。
public class page ... {
@Inject
private DoService doService;
}
public class DoService ... {
private Collection<User> ...
}
public class User {
@Inject
private DoService doService;
}
我不是很確定,但我認爲以下異常發生依賴循環引用的原因,雖然我還以爲吉斯所有itsself管理此。
無論.....如果你需要更多的信息來了解我的問題請事先詢問:)
感謝
java.lang.StackOverflowError
at java.lang.reflect.InvocationTargetException.<init>(InvocationTargetException.java:54)
at WICKET_....DoService$$FastClassByCGLIB$$ce256f9.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.apache.wicket.proxy.LazyInitProxyFactory$CGLibInterceptor.intercept(LazyInitProxyFactory.java:317)
at WICKET_....DoService$$EnhancerByCGLIB$$d1f8934e.rollback(<generated>)
at WICKET_c....DoService$$FastClassByCGLIB$$ce256f9.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
......
嗨,我同意你的看法,雖然這不是關於DO設計,我只是想提供一個簡單的例子。在真實世界的應用中,反向參考很重要:( – 2012-02-03 13:32:06
)如果反向參考很重要,重新考慮設計可能不是一個好主意。很高興看到設計,因爲您看到它,所以其他人也可以查看它。 – 2012-02-03 13:36:28
嗨,再次感謝您的回覆。經過一些進一步的調查發現,錯誤是由一個完全不同的問題造成的。服務的生命週期由不同的對象管理,因爲我需要它的作用範圍爲threadlocal。事實上,wicket-guice正在處理代理對象,這些代理被連接到threadlocal,並且下次這個依賴被注入時,這個代理的代理是由wicket-guice創建的。這導致了infinit循環:( – 2012-02-04 10:19:40