轉(zhuǎn):Message Driven POJO
一直希望那些J字頭的協(xié)議能有幾個提前告老還鄉(xiāng)的,好減輕一下我們的負擔(dān),特別是這WebService滿天飛的時代。但似乎還有很久都輪不到JMS的消失:
1.因為
1.它是《Effective Enterprise Java》的一個實踐。
可以把不影響用戶執(zhí)行結(jié)果又比較耗時的任務(wù)(比如發(fā)郵件通知管理員)異步的扔給JMS 服務(wù)端去做,而盡快的把屏幕返還給用戶。
而且服務(wù)端能夠多線程排隊響應(yīng)--高并發(fā)的請求。
2. 可以在Java世界里達到最高的解耦。
對比WebService,JMS的客戶端與服務(wù)端無需直連,甚至無需知曉對方是誰、在哪里、有多少人,只要對流過的信息作響應(yīng)就行了。對牽一發(fā)動全身的企業(yè)應(yīng)用來說很輕省。
2. 但是
1. Message Bean帶著EJB系的榮光,步驟比較繁雜,你需要實現(xiàn)MessageDrivenBean、MessageListener接口,還需要設(shè)置EJB的配置信息,然后是deploy....
2. Spring 1.x 提供的JMS Template簡化了JMS
Client端的編程,但并沒有涉及到服務(wù)端的改造。
3. 所以,SpringSide的Message Driven
POJO方案
Spring JMS Template + ActiveMQ + Jencks
1. 它是Lightweight的,基本上只是普通POJO,不用搞太多東西。
2. 它是Spring Base的,可以使用Spring的各種特性如IOC、AOP。
3. 它是Effective的,基于Jencks的JCA Container實現(xiàn) pool connection,control transactions and manage security。
4. 但它是withdout EJB
Container的。
其實它還不是100% POJO,除非再用上Lingo,但我已不想走得太遠。
4.黃金版配置
如果你想找一個ActiveMQ 3.2 Stable版+Spring的100%可行的配置文件,估計只能到SpringSide項目里看了。網(wǎng)上的文章,不是已過時,就是不切題。
推薦中英兩份最接近的文檔:
捷特慈朋(IDEA中國):
Spring和Message Bean的整合
Spring loaded: Message-Driven
POJOs
不過它們都有個outdate的地方--ActiveMQ3.2開始不再自帶JCA
Cotainer了,而是將其與Gernimo 合作而成了Jencks,需另外安裝。
5.SpringSide旅游指南
pom.xml里的JMS部分
--所需的依賴包。
applicationContext-jms.xml --黃金版配置文件。
activemq.xml
--AcitveMQ Broker配置文件。
OrderPlaceMDP.java --Message Driven
Pojo。
JmsTest.java --單元測試用例。
OrderManger.java的NodifyOrder()函數(shù)
--實際應(yīng)用的地方。
POJO太簡單,唯一麻煩的配置文件已注釋,這里也就無話了。
posted on 2009-02-11 09:52 Pitey 閱讀(261) 評論(0) 編輯 收藏 所屬分類: Spring