0.依赖:

  1. <!-- 引入quartz对应的依赖 -->
  2. <dependency>
  3. <groupId>org.quartz-scheduler</groupId>
  4. <artifactId>quartz</artifactId>
  5. <version>2.2.</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.quartz-scheduler</groupId>
  9. <artifactId>quartz-jobs</artifactId>
  10. <version>2.2.</version>
  11. </dependency>

1.配置。

  1. <!-- ******************定时任务quartz配置********************* -->
  2. <!-- 注册自定义作业类 -->
  3. <bean id="myJob" class="com.shan.bos.service.jobs.MailJob">
  4. <property name="username" value="lsXXX"/>
  5. <property name="password" value="lXXX"/>
  6. <property name="smtpServer" value="XX.com"/>
  7. </bean>
  8.  
  9. <!-- 配置JobDetail -->
  10. <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  11. <!-- 注入目标对象 即目标类 -->
  12. <property name="targetObject" ref="myJob"/>
  13. <!-- 注入目标方法 -->
  14. <property name="targetMethod" value="execute"/>
  15. </bean>
  16.  
  17. <!-- 配置触发器 -->
  18. <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  19. <!-- 注入任务详情对象 -->
  20. <property name="jobDetail" ref="jobDetail"/>
  21. <!-- 注入cron表达式,通过这个表达式指定触发的时间点 -->
  22. <property name="cronExpression">
  23. <value>/ * * * * ? </value>
  24. </property>
  25. </bean>
  26.  
  27. <!-- 配置调度工厂 -->
  28. <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  29. <!-- 注入触发器 -->
  30. <property name="triggers">
  31. <list>
  32. <ref bean="myTrigger"/>
  33. </list>
  34. </property>
  35. </bean>

2. 定时的任务

  1. package com.shan.bos.service.jobs;
  2.  
  3. import java.util.List;
  4. import java.util.Properties;
  5.  
  6. import javax.annotation.Resource;
  7. import javax.mail.Authenticator;
  8. import javax.mail.Message.RecipientType;
  9. import javax.mail.PasswordAuthentication;
  10. import javax.mail.Session;
  11. import javax.mail.Transport;
  12. import javax.mail.internet.InternetAddress;
  13. import javax.mail.internet.MimeMessage;
  14.  
  15. import com.shan.bos.dao.IWorkbillDao;
  16. import com.shan.bos.domain.Workbill;
  17.  
  18. /**
  19. * 发送邮件的作业
  20. * @author Sea
  21. *
  22. */
  23. public class MailJob {
  24. @Resource
  25. private IWorkbillDao workbillDao;
  26.  
  27. private String username;
  28. private String password;
  29. private String smtpServer;
  30.  
  31. public String getUsername() {
  32. return username;
  33. }
  34.  
  35. public void setUsername(String username) {
  36. this.username = username;
  37. }
  38.  
  39. public String getPassword() {
  40. return password;
  41. }
  42.  
  43. public void setPassword(String password) {
  44. this.password = password;
  45. }
  46.  
  47. public void execute() {
  48. System.out.println("要发邮件了。。。");
  49. try {
  50. //查询工单类型为新单的所有工单
  51. List<Workbill> list = workbillDao.findAll();
  52. System.out.println(list.get().toString());
  53. if(null != list && list.size() > ){
  54. final Properties mailProps = new Properties();
  55. mailProps.put("mail.smtp.host", this.getSmtpServer());
  56. mailProps.put("mail.smtp.auth", "true");
  57. mailProps.put("mail.username", this.getUsername());
  58. mailProps.put("mail.password", this.getPassword());
  59.  
  60. // 构建授权信息,用于进行SMTP进行身份验证
  61. Authenticator authenticator = new Authenticator() {
  62. protected PasswordAuthentication getPasswordAuthentication() {
  63. // 用户名、密码
  64. String userName = mailProps.getProperty("mail.username");
  65. String password = mailProps.getProperty("mail.password");
  66. return new PasswordAuthentication(userName, password);
  67. }
  68. };
  69. // 使用环境属性和授权信息,创建邮件会话
  70. Session mailSession = Session.getInstance(mailProps, authenticator);
  71. for(Workbill workbill : list){
  72. // 创建邮件消息
  73. MimeMessage message = new MimeMessage(mailSession);
  74. // 设置发件人
  75. InternetAddress from = new InternetAddress(mailProps.getProperty("mail.username"));
  76. message.setFrom(from);
  77. // 设置收件人
  78. InternetAddress to = new InternetAddress("lshan511094523@163.com");
  79. message.setRecipient(RecipientType.TO, to);
  80. // 设置邮件标题
  81. message.setSubject("系统邮件:新单通知");
  82. // 设置邮件的内容体
  83. message.setContent(workbill.toString(), "text/html;charset=UTF-8");
  84. // 发送邮件
  85. Transport.send(message);
  86. }
  87. }
  88. } catch (Exception ex) {
  89. ex.printStackTrace();
  90. }
  91. }
  92.  
  93. public String getSmtpServer() {
  94. return smtpServer;
  95. }
  96.  
  97. public void setSmtpServer(String smtpServer) {
  98. this.smtpServer = smtpServer;
  99. }
  100. }

quartz 的简单使用的更多相关文章

  1. 基于Quartz实现简单的定时发送邮件

    一.什么是Quartz Quartz 是一个轻量级任务调度框架,只需要做些简单的配置就可以使用:它可以支持持久化的任务存储,即使是任务中断或服务重启后,仍可以继续运行.Quartz既可以做为独立的应用 ...

  2. Quartz定时任务简单实例

    文章纲要: 初步搭建一个由Quartz为引擎集群的定时任务模块,功能为每隔30秒打印一条信息(Hello World!!!) 一.环境 Spring MVC Mevan Quartz 2.2.1 二. ...

  3. C#中Quartz的简单易懂定时任务实现

    作为一个优秀的开源调度框架,Quartz 具有以下特点: 强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求: 灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种 ...

  4. Quartz的简单使用

    一.Quartz 介绍 Quartz是Java领域最著名的.功能丰富的.开放源码的作业调度工具,几乎可以在所有的Java应用程序中集成--从小的单机应用到大的电子商务系统. Quartz可以用来执行成 ...

  5. Quartz SpringBoot 简单整合一下

    一次简单的代码整合记录. 数据库准备 如果是MySQL可能出现一些小问题.比如联合主键长度超限制,已经记录解决办法了. CREATE TABLE QRTZ_JOB_DETAILS ( SCHED_NA ...

  6. Quartz.Net简单使用

    Quartz.Net为开源的作业调度框架,使用方便,实现IJob接口,及相关配置,即可实现调度. 项目包安装: install-package Quartz install-package log4n ...

  7. 使用Quartz Job 简单的做一个定时服务

    第一步:创建一个windows服务 第二步:通过NuGet 安装Quartz (我搜索了Quartz 关键字 安装了 ) 第三步 代码部分 任务类 如 多个任务 就多几个类 public class ...

  8. Quartz简单案例

    需求需要开发一个每天定时推送消息给微信用户,第一次接触quartz,简单案例 1. 先编辑要执行的任务 测试类代码 package com.wqq.test.quartz; import org.sp ...

  9. Quartz和Spring Task定时任务的简单应用和比较

    看了两个项目,一个用的是Quartz写的定时器,一个是使用spring的task写的,网上看了2篇文章,写的比较清楚,这里做一下留存 链接一.菠萝大象:http://www.blogjava.net/ ...

随机推荐

  1. 按的第一个greasemonkey插件:评论时可以粘贴啦~~

    原来的样子:如果按ctrl+V会跳出错误

  2. 【转】Ubuntu12.04 LTS下环境变量设置

    原文网址:http://blog.chinaunix.net/uid-26963688-id-3221439.html 1.设置当前用户环境变量(对root用户无效) 打开终端输入:light@cha ...

  3. 通过手动安装来启动ZStack

    当您使用手动安装手册完成ZStack的安装之后,您可以继续进行一些必要的配置 以便用它来自动云环境.ZStack的管控工具zstack-ctl会安装到每一个ZStack管理节点,您可以使用它来控制本地 ...

  4. cookie、localStorage、sessionStorage 的生命周期

    生命周期 存储 生命周期 cookie 没有设置 expires 选项时,cookie 的生命周期仅限于当前会话中,关闭浏览器意味着这次会话的结束,所以会话 cookie 仅存在于浏览器打开状态之下. ...

  5. vue-cli、webpack提取第三方库-----DllPlugin、DllReferencePlugin

    需要安装的插件有 extract-text-webpack-plugin assets-webpack-plugin clean-webpack-plugin npm install extract- ...

  6. Apache Spark 内存管理详解

    在spark里面,内存管理有两块组成,一部分是JVM的堆内内存(on-heap memory),这部分内存是通过spark dirver参数executor-memory以及spark.executo ...

  7. selenium启动谷歌所遇到的问题

    最近在学习selenium webdriver,发现启动火狐时,运行非常慢,几天前一直在尝试启动谷歌驱动启动,但启动中总遇到问题,启动不起来,一直百度查找方法,还是没搞定,个人比较执着,爱钻牛角尖,弄 ...

  8. golang sizeof 占用空间大小

    C语言中,可以使用sizeof()计算变量或类型占用的内存大小.在Go语言中,也提供了类似的功能, 不过只能查看变量占用空间大小.具体使用举例如下. package main import ( &qu ...

  9. 【python】网络编程-TCP协议套接字

    服务器端: #!/usr/bin/env python from socket import * from time import ctime HOST = '' PORT = 21567 BUFSI ...

  10. 【python】os模块常用命令

    python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...