Desidero reintrodurre le dipendenze con ambito singleton in prototipi di bean Spring, dopo che sono stati deserializzati.come ricollegare i bean Spring singleton alla deserializzazione
Dire che ho un bean di processo, che dipende da un bean di repository. Il bean repository ha un ambito come un singleton, ma il bean Process ha un ambito prototipo. Periodicamente serializzo il processo e successivamente lo deserializzo.
class Process {
private Repository repository;
// getters, setters, etc.
}
Non desidero serializzare e deserializzare il repository. Né voglio mettere "transient" sulla variabile membro che contiene un riferimento ad esso in Process, né un riferimento a qualche tipo di proxy, o qualcosa di diverso da una semplice variabile membro vecchio dichiarata come repository.
Quello che penso che voglio è che il processo abbia la sua dipendenza riempita con un proxy serializzabile che punta (con un riferimento transitorio) al repository e, dopo la deserializzazione, può trovare nuovamente il repository. Come posso personalizzare Spring per farlo?
I figura potrei usare un proxy per contenere i riferimenti di dipendenza, molto simile. Vorrei poter usare quella tecnica esatta. Ma il proxy che ho visto generare Spring non è serializzabile, e i documenti dicono che se lo uso con un bean singleton, otterrò un'eccezione.
Potrei utilizzare un ambito personalizzato, forse, sui bean singleton, che fornirebbe sempre un proxy quando viene richiesto un bean con ambito personalizzato. È una buona idea? Altre idee?
Che tipo di contesto applicativo sono questi fagioli in? Un contesto webapp? – skaffman
In questo momento, non un contesto webapp. Più tardi, probabilmente sarebbe un contesto webapp. – Ladlestein
In tal caso, come viene avviato il contesto? È un'applicazione desktop? – skaffman