使用 Domain Events 不成功
准备使用 jdon 异步 Domain Events 模式。发现不成功。贴出代码,请老大们指点一二。
Model:
@Model
public class CoderProperty
{
int id;
String first;
String second;
String third;
String last;
int maxLenth;
int maxSize;
@Inject
DomainEvent de ;
boolean isNew = true;// 是否已经更新
。。。。。忽略掉get/set方法
/**
* 计算下一个缓冲自增长量的最大值
*/
public void compute()
{
int current = Integer.parseInt(getLast());
int temp = Double.valueOf(Math.pow(10, getMaxLenth())).intValue();
this.setLast(String.valueOf(current + temp + getMaxSize()).substring(1));
setNew(false);
}
/**
* 修改编码器信息
*/
public void update()
{
compute();
de.updateCoderProperty(this);
}
/**
* @return the de
*/
public DomainEvent getDe()
{
return de;
}
/**
* @param de the de to set
*/
public void setDe(DomainEvent de)
{
this.de = de;
}
}
DomainEvent
@Introduce("message")
public class DomainEvent
{
/**
* 异步修改编码器信息
* @param cp
* @return
*/
@Send("modifyCoderProperty")
public DomainMessage updateCoderProperty(CoderProperty cp)
{
return new DomainMessage(cp);
}
}
components
@Component("modifyCoderProperty")
public class ModifyCoderProperty implements MessageListener
{
CoderDao cd;
/**
* 执行编码器属性修改工作
* @see com.jdon.domain.message.MessageListeneraction(com.jdon.domain.message.DomainMessage)
*/
public void action(DomainMessage arg0)
{
CoderProperty cp = (CoderProperty) arg0.getEventSource();
cd.updBean(cp);
cp.setNew(true);
}
}
当我调用model中的update方法时,发现被注入进去的domainevent为null,导致无法继续执行,请老大给看看是不是我哪写错了。
[该贴被lhcli于2010-07-15 16:37修改过]