Spring整合Quartz定时发送邮件

功能描述:刚开始接触Quartz,试着用Quartz整合spring实现每隔一分钟发送一封邮件连续发送10次

        核心jar:

                    邮件发送:commons-email-1.2.jar mail.jar(必须的)

                    quartz:quartz-all-1.8.3.jar quartz-all-1.8.3/lib/下所有jar

                    spring:spring-context-support.ajr(必须的)

        只贴出核心代码:

        Email发送:使用apache commons-email跟mail

 package com.ssh.commonsemail;

 

 import java.util.ArrayList;

 import java.util.Date;

 import java.util.List;

 

 import javax.mail.internet.InternetAddress;

 

 import org.apache.commons.mail.SimpleEmail;

 

  /**

  * 功能描述:此代码主要实现邮件发送功能

  * @author coder

  *

  */

  public class SendSimplEmail {

     

     

      public static void sendMail()throws Exception{

         List<InternetAddress> list=new ArrayList<InternetAddress>();

         list.add(new InternetAddress("[email protected]"));

         list.add(new InternetAddress("[email protected]"));

         SimpleEmail email=new SimpleEmail();

         email.setFrom("[email protected]");

         email.setCharset("utf-8");

         email.setSentDate(new Date());

         email.setSubject("测试Quartz");

         email.setHostName("smtp.163.com");

         email.setAuthentication("xxxx", "xxxx");

         email.setTo(list);

         email.setContent("<h1>Hello,把凤姐许配给你,你看咋样?</h1>", "text/html;charset=utf-8");

         email.send();

     }

     

     

 }

 

        定义调度工作任务:继承自org.springframework.scheduling.quartz.QuartzJobBean次类在spring-context-support.jar中

 package com.ssh.quantz;

 

 import org.quartz.JobExecutionContext;

 import org.quartz.JobExecutionException;

 import org.springframework.scheduling.quartz.QuartzJobBean;

 

 import com.ssh.commonsemail.SendSimplEmail;

 

  /**

  * 发送email任务

  * @author coder

  *

  */

  public class SendEmailJob extends QuartzJobBean{

     

     @Override

     protected void executeInternal(JobExecutionContext context)

              throws JobExecutionException {

          try {

             //调用邮件发送代码

             SendSimplEmail.sendMail();

          } catch (Exception e) {

             e.printStackTrace();

         }

     }

 

     

 

 }

 

        spring核心配置文件

 <!-- 定义调度工作任务 -->

     <bean id="quantzjobBean" class="org.springframework.scheduling.quartz.JobDetailBean">

         <property name="jobClass">

             <!-- 实现了org.springframework.scheduling.quartz.QuartzJobBean的JobBean -->

             <value>com.ssh.quantz.SendEmailJob</value>

         </property>

         <!-- 调用业务逻辑 -->

         <!--  

         <property name="jobDataAsMap">

             <map>

                 <entry key="biz">

                     <ref bean="users"/>

                 </entry>

             </map>

         </property>

         -->

     </bean>

 

     <!-- 触发任务条件 -->

     <bean id="simpletriggerbean" class="org.springframework.scheduling.quartz.SimpleTriggerBean">

         <property name="jobDetail" ref="quantzjobBean"></property>

         <property name="cronExpression">

              <value>0 47 10 ? * *</value>    //每天10点47触发

         </property>

         

     </bean>

     

     <!-- 启动调度 -->

     <bean id="startQuartz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

         <property name="triggers">

             <list>

                 <ref bean="simpletriggerbean"/>

             </list>

         </property>

     </bean>

 

你可能感兴趣的:(spring)