【sping揭秘】24、Spring框架对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

原文地址:https://www.cnblogs.com/cutter-point/p/9386126.html

时间: 2024-10-10 23:52:34

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

Java 线程池(一):开篇及Executor整体框架介绍

一.开篇 线程池.数据库连接池,在平时的学习中总能接触到这两个词,但它们到底是什么?和线程,数据库连接有什么关系?为什么需要“池”?“池”的概念及作用是什么?要弄清楚这些问题,就要深入到“池”的实现中去. 之前找实习工作时,时常有面试官问这类问题,自己平时知道如何使用Java的Executor线程池框架,但是具体的细节还真没感受,所以打算开始试着研究一下Executor线程池框架. 废话到此打住,正式开始! 二.Executor整体框架 让我们先站在一个较高的角度俯视一下Java线程池的整体结构

Java线程池 Executor框架概述

线程池的意义 循环利用线程资源,避免重复创建和销毁线程 线程池的任务是异步执行的,只要提交完成就能快速返回,可以提高应用响应性 Java线程池还有一个很重要的意义:Java线程池就是JDK 5 推出的Executor框架,在此之前Java线程既是工作任务又是执行机制,而Executor框架把工作任务与执行机制分离开来:工作任务包括Runnable接口和Callable接口,而执行机制由Executor接口提供. Executor 类继承体系 Executor框架由三个部分组成 工作任务:Runn

Java并发——线程池Executor框架

线程池 无限制的创建线程 若采用"为每个任务分配一个线程"的方式会存在一些缺陷,尤其是当需要创建大量线程时: 线程生命周期的开销非常高 资源消耗 稳定性 引入线程池 任务是一组逻辑工作单元,线程则是使任务异步执行的机制.当存在大量并发任务时,创建.销毁线程需要很大的开销,运用线程池可以大大减小开销. Executor框架 说明: Executor 执行器接口,该接口定义执行Runnable任务的方式. ExecutorService 该接口定义提供对Executor的服务. Sched

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程. 一.ThreadPoolTaskExecutor 本文采用 Executors 的工厂方法进行配置. 1.将线程池用到的参数定义到配置文件中 在项目的 resources 目录下创建 executor.properties 文件,并添加如下配置: # 异步线程配置 # 核心线程数 async.executor.thread.core_pool_si

Java - Struts框架教程 Hibernate框架教程 Spring框架入门教程(新版) sping mvc spring boot spring cloud Mybatis

https://www.zhihu.com/question/21142149 http://how2j.cn/k/hibernate/hibernate-tutorial/31.html?tid=63 https://www.zhihu.com/question/29444491/answer/146457757 1. Java - Struts框架教程Struts 是Apache软件基金会(ASF)赞助的一个开源项目.通过采用JavaServlet/JSP技术,实现了基于Java EEWeb

【sping揭秘】20、spring的orm

面向对象的操作方式,spring统一定义在org.springframework.jdbc.object以RdbmsOperation作为顶层抽象定义 Spring对各种ORM的集成 Spring的集成主要体现在对ORM框架的封装,jdbc提供了jdbctemplate Hibernate提供了hibernatetemplate,主要是简化了资源的回收控制 对于ibatis提供了sqlMapClientTemplate 原文地址:https://www.cnblogs.com/cutter-po

0001 - Spring 框架和 Tomcat 容器扩展接口揭秘

前言 在 Spring 框架中,每个应用程序上下文(ApplicationContext)管理着一个 BeanFactory,BeanFactory 主要负责 Bean 定义的保存.Bean 的创建.Bean 之间依赖的自动注入等.应用程序上下文则是对 BeanFactory 和 Bean 的生命周期中的各个环节进行管理,并且提供扩展接口允许用户对 BeanFactory 和 Bean 的各个阶段进行定制,本文从以下三个点进行切入讲解. refresh()是应用上下文刷新阶段. getBean(

跟着刚哥学习Spring框架--通过XML方式配置Bean(三)

Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参的构造器 2.依赖注入的方式 1)属性注入:通过setter方法注入Bean的属性值或依赖的对象 属性注入使用<Property>元素,使用name指定Bean的属性名称,使用value指定Bean的属

Spring框架的重要问题

这篇文章总结了一些关于Spring框架的重要问题,这些问题都是你在面试或笔试过程中可能会被问到的. 目录 Spring概述 依赖注入 Spring Beans Spring注解 Spring的对象访问 Spring面向切面编程 Spring MVC框架 Spring概述 1.什么是Spring? Spring是一个开源的Java EE开发框架.Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性.Spring框架的目标是使得Java