【问题标题】:How to avoid the serialization exception (NotSerializableException) with Spring DataSpring Data如何避免序列化异常(NotSerializableException)
【发布时间】:2016-01-08 21:19:24
【问题描述】:

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

而且最新版本的 Spring Data 没有变化。

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

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

提前致谢。

【问题讨论】:

    标签: spring repository notserializableexception


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 2018-01-17
      • 2017-02-10
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      相关资源
      最近更新 更多