I иметь класс обслуживания, который не является сериализуемым, и bean-компонент, который должен быть сериализуемым, но должен иметь доступ к этому классу обслуживания:
class SomeBean implements Serializable
{
private StuffFactory factory;
@Autowired
public SomeBean(StuffFactory factory)
{
this.factory = factory;
}
public getOther()
{
return this.factory.getSomeOtherStuff();
}
}
Это явно не работает, потому что теперь класс SomeBean
больше не сериализуемый. Как правильно решить эту проблему весной? Когда я делаю поле factory
переходным процессом, тогда я теряю внедренный экземпляр factory при десериализации, или нет? И когда я сделаю StuffFactory
также сериализуемым, тогда этот класс больше не будет синглтоном, потому что каждый экземпляр SomeBean
будет иметь свою собственную фабрику после десериализации.