我已经玩过 Spring Roo 了,现在我问自己Roo建议的方式或在对象更新后触发动作的最佳实践方式。
让我用一个例子解释一下: 假设我想实现一个基于Web的Bug Tracker(我不想这样做,它只是一个例子)。错误跟踪器,是关于问题。每个问题都有一个州(新的,已确认的,已分配的,正在进行的,已解决的),一个标题和一些其他领域。
用户有一个Web表单,可以输入和更新所有字段(状态,标题,...)。当问题的状态从“进行中”切换到“已解决”时,系统应该向所有对该错误感兴趣的人发送电子邮件(如何维护此感兴趣的人员列表,超出此问题的范围)
我遇到的问题是:如果在状态发生变化时(在Roo应用程序中)如何触发电子邮件发送过程?因为有几个问题:
有没有人有一个好的,可测试的(单元测试)和可维护的解决方案?可维护的意味着特别是处理这个的代码不应该放在控制器中,因为它将被用在几个控制器中有一天,有人会实施一个新的控制器,他可能会忘记处理这个电子邮件问题。
答案 0 :(得分:2)
您可以使用@PostUpdate
注释,JPA生命周期回调侦听器。
class Issue{
@PostUpdate
protected void onPostUpdate(){
//This method wil run after the update
if(this.state == Resolved){
//...
}
}