SpringBoot整合定时任务和Emil发送
SpringBoot整合定时任务和Emil发送
定时任务
任务系统指的是定时任务。定时任务是企业级开发中必不可少的组成部分,诸如长周期业务数据的计算,例如年度报表,诸如系统脏数据的处理,再比如系统性能监控报告,还有抢购类活动的商品上架,这些都离不开定时任务。在SpringBoot中使用定时任务十分简单,按照以往的经验,SpringBoot整合其它技术大致可分为三步:
- 导坐标
- 写配置
- 调接口
在pom.xml中导入对应坐标
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency>
在application.yml中写配置
spring:task:scheduling:pool:size: 1 # 任务调度线程池大小 默认 1thread-name-prefix: ssm_ # 调度线程名称前缀 默认 scheduling- shutdown:await-termination: false # 线程池关闭时等待所有任务完成await-termination-period: 10s # 调度线程关闭前最大等待时间,确保最后一定关闭
这些配置根据自己的需求设置
在启动类上使用
@EnableScheduling
注解打开定时任务开关@SpringBootApplication //开启定时任务 @EnableScheduling public class Springboot18TaskApplication {public static void main(String[] args) {SpringApplication.run(Springboot18TaskApplication.class, args);}}
在需要开启定时任务的方法上添加
@Scheduled
注解并设置cron表达式@Component public class MyTask {@Scheduled(cron = "0/1 * * * * ?")public void run(){System.out.println(Thread.currentThread().getName()+"这是一个定时任务");} }
这里设置的cron代表每秒执行一次
测试结果
邮箱
发邮件是java程序的基本操作,springboot整合javamail其实就是简化开发学习邮件发送之前先了解3个概念,这些概念规范了邮件操作过程中的标准。
- SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议
- POP3(Post Office Protocol - Version 3):用于接收电子邮件的标准协议
- IMAP(Internet Mail Access Protocol):互联网消息协议,是POP3的替代协议发邮件是java程序的基本操作,springboot整合javamail其实就是简化开发。
下面演示一下发邮件的过程
在pom.xml中导入坐标
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
在applicat.yml中写配置
spring:mail:host: smtp.qq.comusername: ***********@qq.compassword: 从你邮箱中获取
host:配置的是提供邮件服务的主机协议,当前程序仅用于发送邮件,因此配置的是smtp的协议。例如使用163邮箱就换成:host:smtp:163.com
username:你发送邮箱的邮箱名
password:这个不是你邮箱密码,而是你邮箱开启smtp时给你的密码
获取邮箱password
拿QQ邮箱举例子,在邮箱—设置—账户中开启POP3/SMTP服务即可获取
编写service接口及其实现类
发送普通邮箱
public interface SendEmil {public void sendemil();//发送普通邮箱public void sendemilX();//发送多组件邮箱 }
public class SendEmilImpl implements SendEmil {@Autowiredprivate JavaMailSender javaMailSender;private String from ="test@qq.com";//发送人的邮箱private String to = "test@qq.com";//接收人的邮箱private String subject = "测试邮件";//邮箱标题private String context = "测试邮件内容";//邮箱正文@Overridepublic void sendemil() {SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from+"(别名)");message.setTo(to);message.setSubject(subject);message.setText(context);javaMailSender.send(message);}
发送邮件是使用JavaMailSender类的send方法,而邮件主体是通过SimpleMailMessage对象来进行封装
发送多组件邮箱:包含图片,附件等
发送简单邮件仅需要提供对应的4个基本信息就可以了,如果想发送复杂的邮件,需要更换邮件对象。使用MimeMessage可以发送特殊的邮件。
@Overridepublic void sendemilX() {try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);//开启添加附件helper.setFrom(from + "(别名)");helper.setTo(to);helper.setSubject(subject);helper.setText(context, true);//添加附件File f1 = new File("这里选择附件的地址");helper.addAttachment(f1.getName(),f1);//添加附件javaMailSender.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}
这里的MimeMessage对象是由javaMailSender的createMimeMessage创建
SpringBoot整合定时任务和Emil发送相关推荐
- SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)
SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊) 目录 SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊) 1.概述 2.最佳实践 2.1创建项目引入依赖(mail) ...
- SpringBoot整合Javamail实现邮件发送
博客主页:踏风彡的博客 博主介绍:一枚在学习的大学生,希望在这里和各位一起学习. 所属专栏:SpringBoot学习笔记 文章创作不易,期待各位朋友的互动,有什么学习问题都可在评论区留言或者私信我,我 ...
- springboot整合rocketMQ记录 实现发送普通消息,延时消息
一.为什么选择RocketMQ消息队列?(可跳过看三的整合代码实例) 首先RocketMQ是阿里巴巴自研出来的,也已开源.其性能和稳定性从双11就能看出来,借用阿里的一句官方介绍:历年双 11 购物狂 ...
- SpringBoot --- 整合Ldap
SpringBoot --- 整合Ldap 1.介绍 2.代码 2.1 pom.xml 2.2 配置文件 2.3 代码 整理不易,不喜勿喷.谢谢 SpringBoot - 整合Ldap. Spring ...
- 【七】springboot整合redis(超详细)
springboot篇章整体栏目: [一]springboot整合swagger(超详细 [二]springboot整合swagger(自定义)(超详细) [三]springboot整合token(超 ...
- ActiveMQ入门-ActiveMQ跟SpringBoot整合发送接收Queue
很多教程中,会介绍原生demo,原生demo在实际开发中不会用到,而且代码量比较大,而且不好理解,也没什么用,所以我们课程不介绍.我们的课程主打实战,所以只会介绍跟SpringBoot整合的方案. 新 ...
- Spring Boot定时任务-SpringBoot整合Quartz
如何通过SpringBoot整合Quartz框架,我们首先去创建一个项目,接下来我们需要在pom文件里添加坐标,我们在使用SpringBoot整合Quartz的时候,需要添加哪些坐标呢,我们来看一下, ...
- springboot整合kafka_springboot整合kafka实现消息的发送消费
如下是springboot整合kafka的一个案例,方便需要的小伙伴. 启动kafka Server cd 到kafka的bin目录下:前提是启动zk./kafka-server-start.sh / ...
- 玩转 SpringBoot 2 之整合定时任务篇
前言 通过本文你将了解到如何在 SpringBoot 2 中整合定时任务使用教程,具体详细内容如下: SpringBoot 自带定时任务使用教程 SpringBoot 集成 JDK 定时任务使用教程 ...
最新文章
- Go http源码解析(一)
- 新泰成为全国智慧城市时空信息云平台建设试点
- SQL中常用的日期计算
- Linux练习(write写入)
- C#在Linux上的开发指南
- python中自带的模块_python中的模块详解
- 【LeetCode笔记】128. 最长连续序列(Java、哈希表、动态规划)
- 八十九、Java内置函数(常用函数)
- 安利个数据库工具dbeaver
- [xshell] xshell 及 xftp 官网无法下载解决
- Dart 语言基础分步指南
- php文字下划线,如何在文字下面添加下划线
- 增量式编码器与螺旋微动机构的数显电路
- IOS中使用getUserMedia获取视频流展示到video中,进行人脸识别
- 【2021-12-22】【Kotlin】Type inference failed. Expected type mismatch: inferred type is HashSet but Set
- VUE进阶篇Part9(render函数)
- C++17类型std::variant介绍
- G4L-硬盘对拷工具
- 文献 | 肥胖这种病,心理因素是源头?
- 生命不息,折腾不止—小黑升win10
热门文章
- python桌面宠物模块_利用python写个桌面挂件 | 手把手带大家做只桌面宠物呗
- 如何解决ipad1升级没有响应的问题
- 关于mfc 对powerpoint的操作,控制ppt播放
- Kubernetes-记录在容器云Galera集群中测试导入数据
- myfile.cpp:15:6 warning: ‘val‘ may be used uninitialized in this function [-Wmaybe-uninitialized]
- 13.Struts2_动态方法调用(了解)
- Python数据分析基础【建模篇】
- Linux环境搭建和基础指令介绍
- 4g运行内存手机还能用多久_4g运行内存(手机4g与6g运存的利弊)
- Android游戏开发之数独课时----2