這個我也不是很瞭解,那麼這個需要好好學習一下了
JMS有2種訊息域型別
1、 point to point 點對點模式
2、釋出訂閱模式 publish/subscribe Pub/Sub 模式
傳統JMS API開發
目前沒有環境,所以目前就寫個demo,後面補上環境去測試一發
package jms; import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException; import org.junit.Test; /**
* 測試jms方法
* @author xiaof
*
*/
public class JmsTest1 { /**
* jms訊息傳送
*/
@Test
public void test1() {
Connection con = null;
Session session = null; try {
//獲取jndi
Context context = new InitialContext(); ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("jndi/jms/connectionFactory");
Destination destination = (Destination) context.lookup("jndi/jms/destination"); con = connectionFactory.createConnection();//建立連線
session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(destination); //設定物件 TextMessage message = session.createTextMessage();
message.setText("Hi");
messageProducer.send(message); messageProducer.close();
session.close(); } catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
//關閉資源
if(con != null) {
try {
con.close();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} } }
Spring改進後JMS
Jmstemplate 又來了,看到template我就不多bb了,大家自己體會,現在懂了吧,模板模式是真的很強大
我不多bb,大家自己去看template的封裝吧,我都看吐了
反正這個template就是封裝了一堆方法用以簡便我們的操作
算了,不看了,以後看訊息佇列的時候再補充一下吧
Spring中的任務排程和執行緒池支援
Quartz
劃分:
Job,JobDetail,Trigger,Scheduler
Spring如何融入quartz的呢?
Jdk中的timer