Spring整合Quartz定時發送郵件 – JAVA編程語言程序開發技術文章

功能描述:剛開始接觸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(“313698683@qq.com”));
        list.add(new InternetAddress(“184675420@qq.com”));
        SimpleEmail email=new SimpleEmail();
        email.setFrom(“184675420@163.com”);
        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=”startDelay”>
            <value>60000</value>
        </property>
        <!– 每隔2分鐘調用一次 –>
        <property name=”repeatInterval”>
            <value>60000</value>
        </property>
        <!– 執行10次 –>
        <property name=”repeatCount”>
            <value>10</value>
        </property>
       
    </bean>
   
    <!– 啟動調度 –>
    <bean id=”startQuartz” class=”org.springframework.scheduling.quartz.SchedulerFactoryBean”>
        <property name=”triggers”>
            <list>
                <ref bean=”simpletriggerbean”/>
            </list>
        </property>
    </bean>

發佈留言