sping揭秘24Spring框架对JMS的集成(无环境版,以后学MQ的时候再隆重介绍)& 任务调度和线程池

Posted cutter_point

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sping揭秘24Spring框架对JMS的集成(无环境版,以后学MQ的时候再隆重介绍)& 任务调度和线程池相关的知识,希望对你有一定的参考价值。

这个我也不是很了解,那么这个需要好好学习一下了

 

 

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

 

 

以上是关于sping揭秘24Spring框架对JMS的集成(无环境版,以后学MQ的时候再隆重介绍)& 任务调度和线程池的主要内容,如果未能解决你的问题,请参考以下文章

sping揭秘23Spring框架内的JNDI支持

JMS与Sping

JMS与Sping

Elasticsearch与Sping Data框架的集成

sping揭秘4某些无法注册到IOC容器的对象如何交给spring托管

(第02节)集成Sping框架