我的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进行过这样的操作,但结果应该是一样的。不管怎样,这适用于你的问题,也许不适用于你具体的解决方案。