2011-02-14 62 views
2

我玩过一点春季Roo,现在我问自己什么是Roo建议的方式或最佳实践方式来触发对象更新后的操作。春季Roo:更新触发动作 - 最佳实践

让我用一个例子解释: 假设我想实现一个基于Web的Bug跟踪(我并不想这样做,它只是一个例子)。一个错误跟踪器,关于问题。每个问题都有一个状态(新建,确认,分配,进行中,已解决),标题和其他字段。

用户拥有一个可以输入和更新所有字段(状态,标题,...)的Web表单。当一个问题的状态从“进行中”切换到“已解决”时,系统应该发送一封电子邮件给所有对这个问题感兴趣的人(如何维护这个感兴趣的人的名单,超出了这个问题的范围) 。

,我的问题是:如何触发时的状态改变(在Roo的应用程序)的电子邮件发送过程?因为有几个问题:

  • 如何确定问题状态是否发生了变化?
  • 我们需要确保,该消息发送的问题是完整的更新后(例如,它不会工作,把扳机问题的的setState()方法,因为它不能保证其他值从表单(标题......)的状态被改变之前被更新。
  • 如果形式是有效的,但问题可能被保存(我不面临着交易不能提交该问题的邮件必须只sended - 这将是另一个问题)

任何人是否有一个良好的,可测试(单元测试)和维护的解决方案可维护尤其意味着该代码吨?处理这个不应该被放置在控制器中,因为它将被用在几个控制器中,并且有一天有人会实现一个新的控制器,他可能会忘记处理这个电子邮件问题。

+0

@skaffman:你为什么要删除的春天标签:它是一个春天的相关问题? – Ralph 2011-02-14 16:21:09

回答