JMS的资料网上很多,通过JMS可以异步发送邮件避免用户等待单一线程完成,提升用户体验。ActiveMQ是开源的JMS框架,比较简单就能上手。
搞了半天终于把在Spring container 下通过JMS发送邮件搞定了,有个destinationName没有配对,搞了半天,如果有人也在做这方面有问题的, 一起交流交流。
<bean id="simpleMailMessageConverter" class="com.ta.te2.util.jms.SimpleMailMessageConverter"></bean>
<!-- <bean id="mimeMessageConverter" class="com.ta.te2.util.jms.MimeMessageConverter"></bean> -->
<!-- <bean id="mimeMessagePreparatorConverter" class="com.ta.te2.util.jms.MimeMessagePreparatorConverter"></bean> -->
<bean id="simpleMailSendingTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<bean class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="jmsConnectionFactory"></property>
</bean>
</property>
<property name="
defaultDestinationName" value="emailQueue"></property>
<property name="messageConverter" ref="simpleMailMessageConverter"></property>
</bean>
<bean id="simpleMailSendingListener"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<constructor-arg>
<bean class="com.ta.te2.util.jms.MailMessageHandlerImpl">
<property name="mailSender" ref="pooledMailSender"></property>
</bean>
</constructor-arg>
<property name="defaultListenerMethod" value="sendingEmail"></property>
<property name="messageConverter" ref="simpleMailMessageConverter"></property>
</bean>
<bean id="simpleMaillistenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="concurrentConsumers" value="5"></property>
<property name="connectionFactory" ref="jmsConnectionFactory"></property>
<property name="
destinationName" value="emailQueue"></property>
<property name="messageListener" ref="simpleMailSendingListener"></property>
</bean>
<bean id="simpleMailSendingProducer" class="com.ta.te2.util.jms.MailMessageSenderProducer">
<property name="jmsTemplate" ref="simpleMailSendingTemplate"></property>
<property name="mailSender" ref="javaMailSender"></property>
</bean>
分享到:
相关推荐
Spring Boot以其强大的依赖管理和自动化配置能力,使得集成各种功能变得异常简单,包括集成JMS进行邮件发送。JMS是Java平台中用于消息传递的一种标准接口,它为应用程序提供了一种与消息中间件交互的方法。 首先,...
【基于JMS的WEB邮件客户端系统(JAVAMAIL版)】是一种使用JavaMail API和Java消息服务(JMS)实现的Web应用程序,它允许用户通过Web界面发送、接收和管理电子邮件。这个系统的核心特点在于利用了JMS进行异步通信,提高...
1. **邮件服务**:在Spring中,可以使用`JavaMailSender`接口来发送邮件,结合`SimpleMailMessage`对象定义邮件内容。 2. **异步处理**:通过集成ActiveMQ,可以创建一个消息生产者,将发送邮件的任务作为一个消息...
**Java消息服务(Java Message Service,简称JMS)**是一种标准的应用程序接口(API),它允许应用程序在分布式环境中创建、发送、接收和读取消息。JMS被设计用来解决应用程序之间的异步通信问题,它是Java平台上的...
在这个例子中,生产者可能会使用JavaMail API来创建邮件,然后通过ActiveMQ的API或JMS(Java Message Service)接口将邮件封装成消息,发送到特定的ActiveMQ主题或队列。 2. **edu-common-parent**:这是一个公共的...
在本项目中,"SpringBoot整合ActiveMQ(消息中间件)实现邮件发送功能"是一个典型的企业级应用示例,它展示了如何将SpringBoot框架与Apache ActiveMQ集成,以实现基于消息队列的邮件发送服务。下面我们将详细探讨这个...
在实际的项目中,消息队列经常被用于将一些耗时的操作,如发送邮件、处理文件和执行复杂的报告生成等,从主线程中分离出来,通过异步处理的方式进行。这种方式可以显著降低服务器的请求响应时间,提高系统的吞吐量和...
接着,这个消息被发送到一个JMS队列或者主题,此时邮件发送的任务就已经完成了,而实际的邮件发送操作则由消息中间件异步处理。 消息中间件会接收到这个邮件消息,并根据配置的邮件服务器信息,利用JavaMail API...
本文将详细讲解"notify邮件/短信发送"这一主题,以及如何通过插件集成短信邮件服务商,利用Java Messaging Service (JMS) 和RESTful API实现发送功能。 1. **邮件和短信服务**: - **邮件服务**:电子邮件是一种...
4. 自动从发:当短信或者邮件消息发送失败后,时隔一定时长后可自动从新发送,确保在可控制范围内的消息不丢失行。 5. 清空消息队列:对于发送队列中的消息,由于客户的需要可对其清空不发送。 6. 日志处理:用户...
当用户在Web应用中触发邮件发送时,SpringMVC控制器会创建一个消息,并通过JMS API将其发送到ActiveMQ。 为了实现这一功能,开发者需要在SpringMVC配置中添加ActiveMQ的相关配置,包括JMS模板和消息生产者的定义。...
要使用这些库来发送邮件,你需要配置一个`JavaMailSender`接口的实现,如`SimpleMailMessage`来定义邮件的基本信息,如发件人、收件人、主题和正文。然后,通过Spring的`MailSender`发送邮件。配置通常在Spring的...
总之,ActiveMQ与JMS的结合使用,为企业级应用提供了强大的消息通信能力,不仅可以实现点对点的消息传递,还能通过邮件适配器扩展到电子邮件的发送。理解并熟练掌握这些知识点,对于构建健壮、高效、可扩展的分布式...
- **不是Mail API**:虽然JMS和邮件系统都涉及消息传递,但它们的服务范围和目的存在显著差异。JMS主要用于实时消息处理,而邮件系统则侧重于异步消息传递。 - **现存的消息系统**:JMS 1.1规范融合了多个现有消息...
本示例将探讨如何使用ActiveMQ实现异步邮件发送,这有助于提高应用性能,因为邮件发送通常是一个耗时的操作。 首先,我们来看"edu-demo-mqproducer"这个文件,它代表生产者部分,即负责发送消息到ActiveMQ的消息...
例如,当系统完成一项任务或者发生异常时,可以通过JMS发送一条消息,然后MDB接收到消息后,利用JAVAMAIL库发送一封通知邮件给相关人员。 接下来,我们讨论一下J2EE容器在用户安全管理中的作用。J2EE容器如Tomcat、...
本文将详细讲解如何使用Java Mail API通过SMTP(Simple Mail Transfer Protocol)服务来实现邮件发送功能,包括发送文本、图片、附件以及如何通过JSON动态定制邮件内容,并介绍如何利用消息队列实现异步处理机制。...