因此,我已经注意到,我肯定有一种样式化Spring / Hibernate堆栈对象的趋势,如下所示:
这里的问题是,Foos没有任何真正的逻辑。例如,如果每次Foo过期时都需要发送电子邮件,则不会调用Foo.expire()。有一个对FooService.expireFoo(fooId)的调用。这是由于多种原因:
因此由于种种原因,我的Spring域对象基本上是带有某些验证逻辑的美化结构。也许没关系。也许Web服务可以作为过程代码。也许随着新功能的编写,创建以新方式处理相同旧对象的新服务是可以接受的。
但是我想摆脱这种设计,而且我想知道Spring还会用其他方法做什么吗?你是否使用诸如加载时编织(我对此不太满意)这样的花哨技巧来与之抗衡?你还有别的把戏吗?你认为程序是否合适?
你可以让Spring使用AOP将服务注入到Hibernate实例化实例中。你还可以使用拦截器让Hibernate进行相同的操作。
关于“让Foo进行事务性事务很烦人”,我希望你的服务实现会知道/关心事务,如果你现在在域模型中使用服务接口,那现在应该还不完全很烦人。
我怀疑决定何时保存域模型取决于它是什么以及你在做什么。
FWIW我倾向于产生相同类型的anemic structures,但是我到了那里,现在我知道有可能以更明智的方式做到这一点。