-
监听事件
import com.seeyon.apps.collaboration.event.CollaborationStartEvent; import com.seeyon.ctp.event.EventTriggerMode; import com.seeyon.ctp.util.annotation.ListenEvent; ... public MyCollaborationEventListener{ // 监听协同发起事件,同步执行 @listenEvent(event= CollaborationStartEvent.class)
public void onCollaborationStart1(CollaborationStartEvent event){ //event.getSummartId() } // 监听协同发起事件,异步执行 Since V5.1 @listenEvent(event= CollaborationStartEvent.class,async=true)
public void onCollaborationStart2(CollaborationStartEvent event){ //event.getSummartId() } // 监听协同发起事件,事务提交成功后执行 Since V5.1 @listenEvent(event= CollaborationStartEvent.class,mode=EventTriggerMode.afterCommit)
public void onCollaborationStart3(CollaborationStartEvent event){ //event.getSummartId() } }
协同发起时立刻执行,同步模式,如果监听代码出了异常,会导致整个事务回滚,协同发起失败。
协同发起时立刻执行,异步模式,监听代码出异常不影响协同发起。但如果协同发起自身事务回滚,监听代码仍然会执行。
协同发起成功提交事务后执行,异步模式。
如非特定的需求,建议采用第三种模式;
否则以协同发起后发短信为例,第一种模式如果短信网关出错,会导致整个系统的协同都无法发起;
第二种模式,协同发起出错,但短信已经发出,无发追回。
第三种模式,只有协同发起成功了才发出短信。
<bean id="" class="com.seeyon.apps.form.MyCollaborationEventListener"> …… </bean>