Java EE6 事件:JMS的轻量替换

Java EE6 Events, a lightweight alternative to JMS | Styled Ideas.be

主要是使用元注解@Observes

被观察者:
@Inject
Event<LogMessage> event;

通过fire发出命令:
event.fire(new LogMessage("Log it baby!", Level.INFO));

观察者或命令监听者:


public class LogListener {
private static final Logger LOGGER = Logger.getAnonymousLogger();
public void process(@[author]Observes[/author] LogMessage message){
LOGGER.log(message.getLevel(), message.getMessage());
}
}

BTW:JavaEE6标准刚出来时,我研究一下这个功能,因为它和Jdonframework的Domain Events非常相像,关键是能否将命令发送源设定在Domain Model领域实体对象中,后大概发现不行,这实际是SOA架构和DDD架构的本质区别所致,SOA架构JavaEE包括Spring是遵循服务高于领域模型之上,因此他们的容器只关心Service服务。


[该贴被banq于2011-05-23 10:49修改过]