代码之家  ›  专栏  ›  技术社区  ›  David Parks

Spring:使用对不可序列化bean的引用序列化对象

  •  3
  • David Parks  · 技术社区  · 14 年前

    UserDetailsService )绑定到会话并序列化会话(在google apps引擎中)。

    我最近看了一个Spring 3演示,上面说 userDao ,如下所示,由不序列化bean的代理加载,但只存储名称并在反序列化时重新获取引用。

    但有了下面的代码 NotSerializableException: com.prepayproxy.dataaccesslayer.GAEUserDao

    @Service("springUserDetailsService")
    public class SpringUserDetailsService implements UserDetailsService, Serializable {
        @Resource(name="userDao")
        private IUserDao userDao;
        //...
    }
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   DwB    12 年前

    你有两个选择:

    1. 自己序列化dao。

    Java提供了序列化不可序列化对象的方法。你需要实施

    
     private void writeObject(java.io.ObjectOutputStream out)
         throws IOException
     private void readObject(java.io.ObjectInputStream in)
         throws IOException, ClassNotFoundException;
    
    

    Serializable