Java EE6 事件:JMS的輕量替換

banq發表於2011-05-23
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());
    }
}
<p class="indent">


BTW:JavaEE6標準剛出來時,我研究一下這個功能,因為它和Jdonframework的Domain Events非常相像,關鍵是能否將命令傳送源設定在Domain Model領域實體物件中,後大概發現不行,這實際是SOA架構和DDD架構的本質區別所致,SOA架構JavaEE包括Spring是遵循服務高於領域模型之上,因此他們的容器只關心Service服務。


[該貼被banq於2011-05-23 10:49修改過]

相關文章