我想在它們被反序列化之後,將singleton範圍的依賴關係重新注入原型Spring bean。如何在反序列化時重新附加singleton Spring bean
說我有一個Process bean,它依賴於一個Repository bean。 Repository bean的作用範圍是一個singleton,但Process bean是原型範圍的。我會定期序列化進程,然後將其反序列化。
class Process {
private Repository repository;
// getters, setters, etc.
}
我不想序列化和反序列化存儲庫。我也不希望將「transient」放在Process中引用它的成員變量上,也不要對某種代理的引用,或者將其聲明爲Repository的普通舊成員變量以外的任何其他引用。
我想我想要的是讓Process依賴於一個可序列化的代理,該代理指向Repository,並且在反序列化時可以再次找到Repository。我如何定製Spring來做到這一點?
我想我可以使用代理來保存依賴關係引用,很像。我希望我可以使用這種確切的技術。但是我看到Spring生成的代理不是可序列化的,文檔說如果我將它與singleton bean一起使用,我會得到一個異常。
我可以在singleton bean上使用自定義作用域,它在請求自定義作用域bean時總是會提供代理。這是一個好主意嗎?其他想法?
這些bean在哪些應用程序上下文中?一個webapp上下文? – skaffman 2010-08-12 21:00:23
現在,不是一個webapp上下文。稍後,可能會是一個webapp上下文。 – Ladlestein 2010-08-12 21:47:21
在這種情況下,上下文是如何引導的?它是一個桌面應用程序嗎? – skaffman 2010-08-12 22:02:46