目录
异步需求
发送一封邮件时后台通过多线程进行异步处理,不影响用户对前台页面的操作。发送一封凌晨的定时邮件,用户大可不必陪在程序身旁监督是否发送成功。这些都是异步操作带来的好处。我们可以在Springboot中通过注解实现异步操作。
同步任务 =》异步任务
同步任务我们需要先新建一个spirngboot项目,导入web启动器。
现在我们通过hello请求访问hello页面
执行业务时让程序睡上三秒
启动web项目,浏览器会转3秒,然后再显示hello页面,控制台会在hello页面显示时打印“数据正在处理”
页面在执行sleep的3秒种你无法再对页面进行其他操作,只能尬等
异步任务很简单,只需要在2个地方加注解即可
首先,service中执行的具体方法上加上异步注解
然后在启动类上加入“开启异步的注解”
重启项目后发现,执行sleep的线程不会影响到主线程,用户可以随时对页面进行其他操作
邮件任务
导入mail启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
邮件测试前需要确认你的邮箱开启了各种邮件协议服务
获取授权码,然后把以下信息写到你的applicaiton.properties文件中
发件人邮箱,发件人授权码,发件人的邮件服务器类型,如果是qq邮箱必须开启安全认证服务
然后打开测试类,邮件内容需要写上主体,内容,发件人,收件人
启动测试类,即可收到邮件
======================================================================================
我们再发送一个复杂的邮件
这次文字带了样式,并且附件是一张图片~
定时邮件发送
在springboot启动类里开启定时功能的注解
然后你新建一个service,开启Schedule注解,输入计划任务的参数
它这个执行时间是你电脑的时间,下面我测试一下,到点了会打印语句。
可以看到,打印成功。注意,没有任何controller调用这个方法,只用一个注解就实现了定时执行的功能