2

我遇到了 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.Repositiry 是不可序列化的。

并且 Spring Data 的最新版本没有改变。

我可以覆盖序列化,但我不知道它是否是最好的解决方案。

您能否告诉我您是否找到了解决此问题的其他解决方案或解决方法。

预先感谢。

4

1 回答 1

1

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

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

@Component
@Scope("session")
public class Bean implements Serializable {

   @Autowired
   private transient FooRepository repository;

}

注意:这是理论上的,我从来没有用注入的 bean 这样做过,但结果应该是一样的。无论如何,这适用于您的问题,可能不适用于您的具体解决方案。

于 2016-01-08T21:27:05.463 回答