紙飛機

            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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 乌鲁木齐县| 茂名市| 长沙市| 大石桥市| 灵寿县| 游戏| 红原县| 逊克县| 井研县| 岳普湖县| 凌云县| 南澳县| 泽库县| 赤峰市| 始兴县| 紫金县| 冷水江市| 通许县| 北海市| 纳雍县| 建始县| 潢川县| 梅州市| 金门县| 阿克陶县| 晋宁县| 平南县| 吉林市| 红桥区| 获嘉县| 河西区| 岱山县| 元阳县| 藁城市| 普陀区| 道孚县| 绥江县| 山阳县| 铅山县| 眉山市| 左贡县|