这个我也不是很了解,那么这个需要好好学习一下了
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