紙飛機

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            22 隨筆 :: 28 文章 :: 30 評論 :: 0 Trackbacks
          在web開發中,我們經常需要定時完成一些功能。比如定義統計報表啊,統計用戶排名等等。利用spring就可以輕松地做到這些任務。下面我就以定時發送郵件來來展示如何利用spring定時發送郵件,以及spring對JavaMail的簡化。
          MailService.java類
          package com.open.quartz;
          import org.springframework.mail.MailException;
          import org.springframework.mail.MailSender;
          import org.springframework.mail.SimpleMailMessage;
          public class MailService {
              
          private MailSender mailSender;
              
          private SimpleMailMessage mailMessage;//郵件模板
              
          public void sendMail() {
                  System.out.println(
          "-----------發送郵件!---------");
                  SimpleMailMessage msg
          =new SimpleMailMessage(this.mailMessage);
                  msg.setText(
          "this is a test mail");
                  
          try {
                      mailSender.send(msg);
                  }
           catch (MailException e) {
                      e.printStackTrace();
                  }

                  System.out.println(
          "-----------發送成功!---------");
              }

               
          //省略set,get方法
          }
          在web.xml里添加以下代碼
          <listener>
                  
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
              
          </listener>
          在WEB-INF目錄下添加applicationContext.xml文件
          <beans>
              
          <bean id="mailSender"
                  class
          ="org.springframework.mail.javamail.JavaMailSenderImpl">
                  
          <property name="host" value="smtp.163.com"/>
                      <!-- 有些郵件服務器發送郵件需要認證,所以必須提供帳號  -->
                  
          <property name="username" value="填入用戶名"/>
                  
          <property name="password" value="填入密碼"/>
                  
          <property name="javaMailProperties">
                      
          <props>
                          
          <prop key="mail.smtp.auth">true</prop>
                      
          </props>
                  
          </property>
              
          </bean>
              <!--一個郵件模板-->
              
          <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
                  
          <property name="to" value="asm_c_yuan@163.com"/>
                  
          <property name="from" value="asm_c_yuan@163.com"/>
                  
          <property name="subject" value="test"/>
              
          </bean>
                  <bean id="ms" class="com.open.quartz.MailService" autowire="byName"/>
              
          <bean id="reportJob"
                  class
          ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                  
          <property name="targetObject" ref="ms"/>
                  
          <property name="targetMethod" value="sendMail"/>
              
          </bean>
                 <!--一個簡單的調度器-->
              
          <bean id="simpleTrigger"
                  class
          ="org.springframework.scheduling.quartz.SimpleTriggerBean">
                  
          <property name="jobDetail" ref="reportJob"/>
                  
          <property name="startDelay" value="1"/>   在web啟動多少毫秒后啟動任務
                  
          <property name="repeatInterval" value="100000000"/> 表示沒隔多少毫秒啟動
              
          </bean>
                 <!--一個定時的調度器-->
              
          <bean id="cronTrigger"
                  class
          ="org.springframework.scheduling.quartz.CronTriggerBean">
                  
          <property name="jobDetail" ref="reportJob"/>
                  
          <property name="cronExpression" value="0 0 6 * * ?"/> 指明每天早上6點啟動任務,表達式的解釋見下篇文章
              
          </bean>
              
          <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
                  
          <property name="triggers">
                      
          <list>
                          
          <ref bean="simpleTrigger"/>
                      
          </list>
                  
          </property>
              
          </bean>
          </bean>

          涉及的jar包有:spring.jar,javamail.jar,activation.jar,quartz.jar

          轉自:http://www.aygfsteel.com/xfan/archive/2006/06/13/52577.html

          posted on 2007-10-26 13:47 紙飛機 閱讀(1454) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 吴江市| 伊吾县| 富宁县| 明水县| 神农架林区| 绥阳县| 揭阳市| 哈巴河县| 沁阳市| 正安县| 霸州市| 安陆市| 攀枝花市| 中超| 临安市| 夹江县| 清镇市| 会理县| 永年县| 嫩江县| 北安市| 屏边| 两当县| 百色市| 阿坝县| 舒城县| 准格尔旗| 台南市| 阳山县| 来安县| 泾源县| 万载县| 平陆县| 凯里市| 安新县| 山东省| 武隆县| 香港| 郯城县| 大厂| 龙井市|