這個我也不是很瞭解,那麼這個需要好好學習一下了

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