如何避免Spring Data出现序列化异常(NotSerializableException)



我的Spring Data有问题,我收到了一些NotSerializableException类型的异常。

下面的一个例子来解释我是如何遇到这个问题的:

@Component
@Scope("session")
public class Bean implements Serializable {
   @Autowired
   private  FooRepository repository;
}
public interface FooRepository extends JpaRepository<Foo, Long>

在我查看代码后,我发现接口org.springframework.data.repository.Reposotiry是不可序列化的。

Spring Data的最后一个版本没有改变。

我可以推翻系列化,但我不知道这是否是最好的解决方案。

你能告诉我你是否找到了解决这个问题的其他方法吗。

提前感谢。

当一个实例必须实现Serializable时,您将"获得异常"。异常是由序列化运行时或类的实例引发的。

我认为最简单的修复方法是使FooRepository"可串行化",但最终不能,因为它是第三方库。因此,在您的情况下,您必须将其"标记"为transient;一旦这样做,它将被可序列化运行时忽略。

@Component
@Scope("session")
public class Bean implements Serializable {
   @Autowired
   private transient FooRepository repository;
}

注意:理论上讲,我从未对注入的bean进行过这样的操作,但结果应该是一样的。不管怎样,这适用于你的问题,也许不适用于你具体的解决方案。

相关内容

  • 没有找到相关文章

最新更新