Thanks for the suggestion! I think using interceptors would work but I think I'd still be left navigating the object graph to find the places that need autowiring. Is that right? Does the interceptor work only at the top level object being stored or would the interceptor be called on each object in the graph that is being serialized? It sounds like the former which is the hole in my original thinking. I need to check for autowiring *each* object that is placed in the cache whether directly or via object references.
I did implement the v5 Externalizer solution and it has worked great. It is dependent on a ThreadLocal but the design works well and the Externalizers are easy enough to implement.