Tag:

spring和贫血域模型

所以,我注意到我绝对有这样的倾向:像我这样的Spring / Hibernate堆栈对象: Foo控制器调用“FooService” FooService调用FooRepository.getById()方法来获取一些Foos。 FooRepository使得一些Hibernate调用来加载Foo对象。 FooService与Foos进行一些交互。 它可能使用相关的TransactionalFooService来处理事务中需要一起完成的事情。 FooService要求FooRepository保存Foos。 这里的问题是Foos没有任何真正的逻辑。 例如,如果每次Foo到期时都需要发送电子邮件,则不会调用Foo.expire()。 有一个FooService.expireFoo(fooId)调用。 这是由于各种原因: 从Foo获得其他服务和对象是很烦人的。 这不是一个Spring bean,它是由Hibernate加载的。 让Foo做一些事情是很烦人的。 Foo是否应该负责select何时保存自己很难。 如果您调用foo.setName(),是否应该坚持更改? 应该等到你叫foo.save()吗? foo.save()是否应该调用FooRepository.save(this)? 所以出于这些原因,我的Spring域对象往往基本上是带有一些validation逻辑的荣耀结构。 也许这没关系。 也许Web服务可以作为程序代码。 也许随着新function的写入,可以用新的方式创build新的服务来处理相同的旧对象。 但是我想逃避这种devise,我想知道Spring的其他用途呢? 你是否喜欢装载时织造(我不舒服)的花式技巧呢? 你有其他的诀窍吗? 你认为程序是好的吗?