领域对象in-memery实现的问题

14-10-21 lzupb
    

领域对象如果要in-memery(hazelcast),必须实现序列化接口吧?貌似jdon源码中的model并没有全部序列化?

另外,领域对象中的值对象也需要序列化吧?还有就是通过@Inject 注入的对象,也能一并保存在缓存中么?

看了jdframework的源码,似乎是通过aop代理包装了一层,不知道具体的实现思路是怎样的?

另外,jivejdon的源码是否可以不加修改部署到hazelcast IMDG中呢?

    

banq
2014-10-21 16:44

2014-10-21 14:50 "@lzupb"的内容
貌似jdon源码中的model并没有全部序列化? ...

你的领域对象不需要使用继承extend任何model,只要注解@Model即可。关于hazelcast见一位道友的实践:

http://www.jdon.com/39870

lzupb
2014-10-21 17:33

感谢板桥的回复,我想了解一下领域对象保存在缓存中的一些思路,我自己实验了下,结论应该是需要序列化的。

我看jdon的源码中似乎是用aop代理封装了一层,采用反射机制注入来实现的,不知道理解的是否正确。

另外,hazelcast的参考链接,版本太低了,更新到最新版本吧!

lzupb
2014-10-21 19:43

刚才试着用hazlcast3.3 设置下cache,跑了一次match ddd的案例,抛出以下错误,但不影响程序运行:

19:33:23.301 [http-bio-8080-exec-5] ERROR com.jdon.domain.model.cache.ModelManagerImp - addCache error:com.hazelcast.nio.serialization.HazelcastSerializationException: There is no suitable serializer for class com.jdon.controller.cache.CacheKey

19:33:23.307 [http-bio-8080-exec-5] ERROR com.jdon.domain.model.cache.ModelManagerImp - addCache error:com.hazelcast.nio.serialization.HazelcastSerializationException: There is no suitable serializer for class com.jdon.controller.cache.CacheKey

the match has not started19:33:44.502 [pool-6-thread-1] ERROR com.jdon.domain.model.cache.ModelManagerImp - addCache error:com.hazelcast.nio.serialization.HazelcastSerializationException: There is no suitable serializer for class com.jdon.controller.cache.CacheKey

19:33:45.925 [pool-5-thread-1] ERROR com.jdon.domain.model.cache.ModelManagerImp - addCache error:com.hazelcast.nio.serialization.HazelcastSerializationException: There is no suitable serializer for class com.jdon.controller.cache.CacheKey

感觉是序列化的问题。。