`
biaoming
  • 浏览: 270409 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring邮件抽象层和Spring中的定时调度的整合(二)

    博客分类:
  • java
阅读更多
其次: MimeMessagePreparator函数的使用

例子:

   1步:配置MailSender.xml

WEB-INF/conf/MailSender.xml



<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="JMSender" class="org.springframework.mail.javamail.JavaMailSenderImpl" >

     <property name="host">

         <value>mail.XXX.com</value>

     </property>

     <property name="javaMailProperties">

         <props>

            <!-- 如果要使用用户名和密码验证,这一步需要 -->

            <prop key="mail.smtp.auth">true</prop>

         </props>

     </property>

     <property name="username">

         <value>发件人的用户名</value>

     </property>

     <property name="password">

         <value>发件人的密码</value>

     </property>

  </bean>



<bean id="ordermanager" class="mail.OrderManagerImpl">

     <property name="JMSender" ref="JMSender"></property>

   

</bean>

</beans>

2步:配置web.xml



           <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>

            <!--WEB-INF/dataAccessContext.xml,-->

            WEB-INF/conf/applicationContext.xml,

            WEB-INF/conf/MailSender.xml

        </param-value>

    </context-param>

3步: 创建类,一个JAVABEAN,一个接口,一个实现类。

package mail;



public class Customer {

  

    private String EmailAddress;

    private String FirstName;

    private String LastName;

    private String text;

  

public Customer(String emailAddress, String firstName, String lastName, String text) {

       super();

       EmailAddress = emailAddress;

       FirstName = firstName;

       LastName = lastName;

       this.text = text;

    }

    public String getEmailAddress() {

       return EmailAddress;

    }

    public void setEmailAddress(String emailAddress) {

       EmailAddress = emailAddress;

    }

    public String getFirstName() {

       return FirstName;

    }

    public void setFirstName(String firstName) {

       FirstName = firstName;

    }

    public String getLastName() {

       return LastName;

    }

    public void setLastName(String lastName) {

       LastName = lastName;

    }

    public String getText() {

       return text;

    }

    public void setText(String text) {

       this.text = text;

    }

  

}

package mail;



public interface IOrderManager {



    void placeOrder(Customer customer);

}

-------------------------------------------------------------------------------------------------------







package mail;



import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;



import org.springframework.mail.MailException;

import org.springframework.mail.javamail.JavaMailSender;

import org.springframework.mail.javamail.MimeMessagePreparator;



public class OrderManagerImpl implements IOrderManager {



    private JavaMailSender JMSender;



    public void placeOrder(final Customer customer) {

      

       //定义一个回调函数

        MimeMessagePreparator preparator = new MimeMessagePreparator() {

      

public void prepare(MimeMessage mimeMessage) throws MessagingException {

                       //setRecipient设置收件人的地址。

         mimeMessage.setRecipient(Message.RecipientType.TO,

                        new InternetAddress(customer.getEmailAddress()));

//setFrom设置发件人的地址。

mimeMessage.setFrom(new InternetAddress("chenhan@inqgen.com"));

           //setText 设置邮件内容。

                mimeMessage.setText(

                    "Dear "

                        + customer.getFirstName()

                        + customer.getLastName()

                        + ", thank you !. "

                        );

              //setSubject 设置邮件标题。

                mimeMessage.setSubject("FOR TEST!!");

            }

        };

        try {

        JMSender.send(preparator);

        }

        catch (MailException ex) {

            //log it and go on

            System.err.println(ex.getMessage());          

        }

    }

    public JavaMailSender getJMSender() {

       return JMSender;

    }



    public void setJMSender(JavaMailSender sender) {

       JMSender = sender;

    }

}

再写以上的类的时候,要加Javamail.jar,关于Javamail.jar的具体信息,可以查一下互联网。

好了,邮件抽象层已经写完了,现在开始写Spring的定时调度。
分享到:
评论

相关推荐

    quartz整合springbatch动态集群定时实现mysql参考

    在这个项目中,结合Quartz和Spring Batch,开发者可能已经创建了一个系统,可以在集群环境中自动调度和执行Spring Batch作业。MySQL被用作Quartz的JobStore和Spring Batch的持久化存储,存储作业状态、调度信息以及...

    Spring中定时任务

    本文将深入探讨Spring中的定时任务,并结合Eclipse和Maven项目环境进行讲解。 首先,Spring提供了两种主要的定时任务实现:`Spring Task`(也称为Spring自己的任务调度器)和`Quartz Scheduler`。`Spring Task`相对...

    spring整合quartz定时发送邮件

    Spring 整合 Quartz 定时发送邮件是一种常见的任务调度场景,用于定期执行如发送通知、报告等操作。Quartz 是一个开源的作业调度框架,它允许开发者创建、调度和管理任务。而Spring作为一个强大的企业级应用开发框架...

    spring 任务调度

    Spring的任务调度模块使得开发者能够在应用中轻松地定义和执行定时任务,极大地提高了代码的可维护性和灵活性。 标题"Spring 任务调度"涵盖了Spring框架中的两个主要组件:Spring Task和Quartz Scheduler。Spring ...

    quartz整合springbatch定时集群实现mysql参考模版

    Quartz和SpringBatch是两种在Java开发中广泛使用的框架,Quartz用于任务调度,而SpringBatch则用于批量处理。在大型分布式系统中,结合这两者可以实现强大的定时任务集群功能,尤其是在需要对大量数据进行定时处理的...

    Spring 框架自带定时任务和Quartz定时任务

    在IT行业中,定时任务是常见的一种需求,它允许程序在特定时间或按照一定周期自动执行某些操作,比如发送邮件、进行数据统计、更新系统状态、推送消息、开启活动或创建增量索引等。目前,主要有两种方式可以实现定时...

    spring定时任务关键jar包(齐全)

    `spring-context-support.jar`是Spring框架对Quartz和Commons JCR等第三方调度库的支持,同时也包含Spring自己的`TaskExecutor`和`TaskScheduler`接口,用于实现异步任务和定时任务。 1. **Spring TaskExecutor**: ...

    spring mvc + spring + hibernate 全注解整合开发视频教程 11

    在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...

    java定时任务调度

    在Java中,有多种实现定时任务调度的方式,包括但不限于Java内置的`java.util.Timer`类、Spring框架的`@Scheduled`注解以及Quartz库。 1. **Java内置的`java.util.Timer`和`TimerTask`**: - `Timer`类用于创建一...

    ss-deamon:Spring和qz定时调度任务的整合

    ss-deamonSpring和qz定时调度任务的整合系统有很多个mysql和mongo库,用户中心,订单中心,库存中心。因为没有统一的抽象业务层,所以定时任务需要直接连接这些不同的数据库。同时考虑到后期会有很多不同的定时任务...

    java中spring与Quartz 整合定时任务.pdf

    在Java开发中,Spring框架和Quartz库的整合是实现定时任务的一种常见方式。Spring提供了灵活的定时任务支持,而Quartz则是一个强大的作业调度框架,可以用来安排复杂的任务执行计划。下面我们将深入探讨如何在Spring...

    Spring Quartz定时任务 jar包

    Spring通过提供一个抽象层,简化了Quartz的配置和使用,使得任务调度变得更加简单和灵活。 1. **Spring集成Quartz**:Spring为Quartz提供了声明式配置,可以在Spring的XML配置文件中定义Job(任务)和Trigger...

    整合Spring与Struts的几种方法

    整合Spring和Struts是Web开发中常见的需求,这两者都是Java Web开发的重要框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,以及对其他框架的良好集成,而Struts则是一个专注于MVC模式的轻量级框架...

    ibatis spring struts 整合案例

    在Ibatis Spring Struts整合中,Spring通常作为核心框架,管理其他组件的生命周期,包括Struts的Action和Ibatis的SqlSession。开发者可以利用Spring的AOP功能来管理事务,确保在多条数据库操作之间保持一致性。...

    Spring普通定时任务和动态设置定时任务

    Spring 通过提供一系列的抽象层来简化 Quartz 的使用。 #### 二、Spring 普通定时任务 ##### 2.1 基本概念 Spring 定时任务主要依赖于 Quartz 的 Job 和 Trigger 两个核心组件。其中,Job 代表了需要执行的任务,...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    Spring3.0作业调度

    在Spring 2.x版本中,Spring已经提供了对`Timer`和Quartz的集成支持,通过`FactoryBean`进行配置,还包含线程池调度的抽象类,隐藏了底层实现细节。然而,Spring 3.0引入了新的【新特性】,包括声明式模型验证、全面...

    spring-context-support-4.2.2和quartz-2.2.3所需Jar包

    1. **邮件服务**:Spring提供了一种抽象层来处理邮件发送,允许开发者配置SMTP服务器并轻松地发送邮件。 2. **定时任务**:通过`org.springframework.scheduling`包,Spring支持基于 cron 表达式的任务调度,可以...

    springboot定时任务的动态开启关闭

    Spring Boot提供了Spring Scheduler抽象来实现这样的需求,使得开发者能够方便地管理和控制定时任务。本篇文章将深入探讨如何在Spring Boot中实现定时任务的动态开启和关闭。 首先,我们需要引入Spring Boot的`...

Global site tag (gtag.js) - Google Analytics