`

Spring2.5框架下面使用quartz的简单方法

阅读更多

无聊下载了quartz的jar包,配置了一个在spring框架下的定时操作,发送一封邮件玩玩吧

列出来使用的jar包:
commons-collections-3.2.jar
commons-logging.jar

spring-2.5.1.jar

quartz-all-1.6.5.jar

mail.jar
activation.jar

说明:
1。如果使用MyEclipse来添加spring2.5的支持,默认添加的是分类别的jar包,省事的话就使用这种综合包吧。如果spring使用的不是2.5版本,需要手动拷贝一个spring-context-support.jar文件到lib目录下面。另外,由于使用commons-collections-3.2.jar,为了防止jar包冲突,将项目源代码lib中的commons-collections-2.1.1删掉。

2。我没有使用javaee.jar包,因为这只是一个示范项目,没那么麻烦。正式的web项目可能会使用javaee.jar,这样与JavaMail的jar包又会冲突了,方法是把javaee.jar里面的mail和activation目录删掉,使用独立的jar包。原项目里的目录大概是在eclipse下面的Genuitec\Common\plugins目录里,搜一下javaee.jar

3。mail.jar和activation.jar的下载地址:
http://java.sun.com/products/javamail/downloads/index.html
http://java.sun.com/products/javabeans/jaf/downloads/index.html
下载javamail-1.4.3.zip和jaf-1_1_1.zip两个包,取其中的mail.jar和activaction.jar即可。


第一步,在web.xml文件中添加spring支持

  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>




第二步,在spring的上下文中添加quartz配置信息
下面的配置就是说在每天的早晨6点执行SayHello类中的sayHello方法

  <bean id="sayHello" class="test.SayHello" />
  
  <bean id="reportTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject" ref="sayHello" />
    <property name="targetMethod" value="say" />
    <property name="concurrent" value="false" />
  </bean>
  
  <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="reportTask" />
    <property name="cronExpression" value="0 0 6 * * ?" />
  </bean>
  
  <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
      <list>
        <ref bean="cronTrigger" />
      </list>
    </property>
  </bean>



第三步,就是编写SayHello类中的sayHello方法,调用发送邮件的任务
SayHello.java

  package test;
  public class SayHello {
  
    public void say(){
      System.out.println("-----------发送邮件!---------");
      sendMail();
      System.out.println("-----------发送成功!---------");
    }
    
    public void sendMail() {
      try {
  
        Properties props = new Properties();
        Session sendsession;
        Transport transport;
  
        // 向属性中写入SMTP服务器的地址
        props.put("mail.smtp.host", "smtp.163.com");
  
        // 设置SMTP服务器需要权限认证
        props.put("mail.smtp.auth", "true");
  
        // 设置输出调试信息
        sendsession = Session.getInstance(props, null);
        sendsession.setDebug(true);
  
        // 根据Session生成Message对象
        Message message = new MimeMessage(sendsession);
  
        // 设置发信人地址
        message.setFrom(new InternetAddress("发件人"));
  
        // 设置收信人地址
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(
            "收件人"));
  
        // 设置E-mail标题
        message.setSubject("标题");
  
        // 发送html格式的邮件
        // 新建一个存放信件内容的BodyPart对象
        BodyPart mdp = new MimeBodyPart();
  
        // 给BodyPart对象设置内容和格式/编码方式
        mdp.setContent("内容", "text/html;charset=gb2312");
  
        // 新建一个MimeMultipart对象用来存放BodyPart对(事实上可以存放多个)
        Multipart mm = new MimeMultipart();
  
        // 将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
        mm.addBodyPart(mdp);
  
        // 设置E-mail内容
        message.setContent(mm);
  
        // 保存对于E-mail的修改
        message.saveChanges();
  
        // 根据Session生成Transport对象
        transport = sendsession.getTransport("smtp");
  
        // 连接到SMTP服务器
        transport.connect("smtp.163.com", "发件人邮箱", "密码");
  
        // 发送E-mail
        transport.sendMessage(message, message.getAllRecipients());
  
        // 关闭Transport连接
        transport.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    
  }

 

0
2
分享到:
评论
1 楼 7454103 2010-06-18  

相关推荐

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    13) spring-mock.jar需spring-core.jar,spring-beans.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jarspring2.0和spring2.5及以上版本的jar包区别Spring 2.5的Jar打包 在Spring 2.5中, Spring Web MVC...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Spring 2.0 开发参考手册

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...

    Spring API

    2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件...

    spring in action英文版

     7.3.2 使用Quartz调度器  7.3.3 按调度计划调用方法  7.4 使用JMS发送消息  7.4.1 使用JMS模板发送消息  7.4.2 消费消息  7.4.3 转换消息  7.5 小结 第三部分 Spring在Web层的应用  第8章...

    Spring.3.x企业应用开发实战(完整版).part2

    13.3 在Spring中使用Quartz 13.3.1 创建JobDetail 13.3.2 创建Trigger 13.3.3 创建Scheduler 13.4 Spring中使用JDK Timer 13.4.1 Timer和TimerTask 13.4.2 Spring对JDK Timer的支持 13.5 Spring对JDK 5.0 Executor的...

    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来...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack ...19.2. 使用Spring JMS ...

    Spring3.x企业应用开发实战(完整版) part1

    13.3 在Spring中使用Quartz 13.3.1 创建JobDetail 13.3.2 创建Trigger 13.3.3 创建Scheduler 13.4 Spring中使用JDK Timer 13.4.1 Timer和TimerTask 13.4.2 Spring对JDK Timer的支持 13.5 Spring对JDK 5.0 Executor的...

    Spring in Action(第2版)中文版

    12.3.2使用quartz调度器 12.3.3按调度计划调用方法 12.4使用jmx管理springbean 12.4.1将springbean输出为mbean 12.4.2远程访问mbean 12.4.3处理通知 12.5小结 第三部分spring客户端 第13章处理web请求 13.1...

    Spring in Action(第二版 中文高清版).part2

    12.3.2 使用Quartz调度器 12.3.3 按调度计划调用方法 12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为MBean 12.4.2 远程访问MBean 12.4.3 处理通知 12.5 小结 第三部分 Spring客户端 第13章 处理...

    Spring in Action(第二版 中文高清版).part1

    12.3.2 使用Quartz调度器 12.3.3 按调度计划调用方法 12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为MBean 12.4.2 远程访问MBean 12.4.3 处理通知 12.5 小结 第三部分 Spring客户端 第13章 处理...

    Spring攻略(第二版 中文高清版).part1

    2.5 使用Spring表达式语言 64 2.5.1 问题 64 2.5.2 解决方案 64 2.5.3 工作原理 65 2.6 设置Bean作用域 69 2.6.1 问题 69 2.6.2 解决方案 69 2.6.3 工作原理 70 2.7 自定义Bean初始化和析构 72 ...

    Spring攻略(第二版 中文高清版).part2

    2.5 使用Spring表达式语言 64 2.5.1 问题 64 2.5.2 解决方案 64 2.5.3 工作原理 65 2.6 设置Bean作用域 69 2.6.1 问题 69 2.6.2 解决方案 69 2.6.3 工作原理 70 2.7 自定义Bean初始化和析构 72 ...

    开源框架jar包(百度云盘)

    Javascript & jQuery &... · quartz-2.2.1-distribution.tar.gz  · xloadtree_zh_cn.zip  · xdoclet-src-1.2.3.zip  · xdoclet-bin-1.2.3.zip  · xfire-distribution-1.2.6.zip  · xdoclet-lib-1.2.3.zip

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    Java EE 框架..................................................................................................................................................................................1 ...

Global site tag (gtag.js) - Google Analytics