一.定时任务

  开启定时任务(在Spring Boot项目主程序上添加如下注解)

@EnableScheduling    //开启定时任务的注解

  创建定时任务(创建一个Service如下)

@Service
public class TestScheduleService {
//@Scheduled(cron = "* * * * * *") //任意秒,任意分,任意时,任意天,任意月,任意周几执行计划
@Scheduled(cron = "1/5 45-50 10-11 9,10 4 1-7")//周一到周日,4月份,9号和10号,10点到11点,45分到50分钟的1秒将会执行计划,并且每5s执行一次
public void test(){
System.out.println("定时器执行了");
}
}

  运行主程序,测试结果如下

  

二.异步任务

  开启异步任务注解(在Spring Boot项目主程序上添加如下注解)

@EnableAsync    //开启异步任务的注解

  创建controller

@Controller
public class MyController {
@Autowired
TestAsynService testAsynService;
@RequestMapping("/home")
@ResponseBody
public String home(){
testAsynService.asynTask();
return "welcome";
}
}

  创建service,并开启异步任务


@Service
public class TestAsynService { @Async //开启异步任务
public void asynTask(){
        try {
Thread.sleep(6000);
System.out.println("异步任务执行了");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

  访问http://localhost:8080/home发现立即进入页面,不需要等待6s,而6s后,控制台打印

    

三.邮件任务

  导入相关的依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

  在邮箱中开启授权码:(以126邮箱为例)

    

  设置一个授权码后开启客户端授权码,例如:

  

  修改配置文件:

#发送者邮箱账号
spring.mail.username=*
#发送者邮箱客户端授权码
spring.mail.password=*
spring.mail.host=smtp.126.com

  如果测试出现Error: A secure connection is required......

  则可以添加一行配置:spring.mail.properties.mail.smtp.ssl.enable=true

  编写代码测试:

@Autowired
JavaMailSenderImpl javaMailSender;
@Test
public void contextLoads() {
SimpleMailMessage message = new SimpleMailMessage();//简单邮件
message.setTo("");//目标邮箱
message.setFrom("");//发送者邮箱
message.setSentDate(new Date());//发送时间
message.setSubject("");//邮件的标题
message.setText("");//发送邮件的内容
javaMailSender.send(message);
}

Spring Boot任务(定时,异步,邮件)的更多相关文章

  1. spring boot:使用async异步线程池发送注册邮件(spring boot 2.3.1)

    一,为什么要使用async异步线程池? 1,在生产环境中,有一些需要延时处理的业务场景: 例如:发送电子邮件, 给手机发短信验证码 大数据量的查询统计 远程抓取数据等 这些场景占用时间较长,而用户又没 ...

  2. 【Spring Boot学习之六】Spring Boot整合定时任务&异步调用

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2一.定时任务1.启动类添加注解@EnableScheduling 用于开启定时任务 package com.wjy; i ...

  3. (转)spring boot注解 --@EnableAsync 异步调用

    原文:http://www.cnblogs.com/azhqiang/p/5609615.html EnableAsync注解的意思是可以异步执行,就是开启多线程的意思.可以标注在方法.类上. @Co ...

  4. spring boot注解 --@EnableAsync 异步调用

    EnableAsync注解的意思是可以异步执行,就是开启多线程的意思.可以标注在方法.类上. @Component public class Task { @Async public void doT ...

  5. spring boot(16)-mail发邮件

    上一篇讲了如何处理异常,并且异常最终会写入日志.但是日志是写在服务器上的,我们无法及时知道.如果能够将异常发送到邮箱,我们可以在第一时间发现这个异常.当然,除此以外,还可以用来给用户发验证码以及各种离 ...

  6. Spring Boot中实现异步调用之@Async

    一.什么是异步调用 “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用 的语句返回结果 ...

  7. spring boot发简单文本邮件

    首先要去邮箱打开POP3/SMTP权限: 然后会提供个授权码,用来发送邮件.忘记了,可以点生成授权码再次生成. 1.引入spring boot自带的mail依赖,这里版本用的:<spring-b ...

  8. Spring Boot -- Spring Boot之@Async异步调用、Mybatis、事务管理等

    这一节将在上一节的基础上,继续深入学习Spring Boot相关知识,其中主要包括@Async异步调用,@Value自定义参数.Mybatis.事务管理等. 本节所使用的代码是在上一节项目代码中,继续 ...

  9. spring boot使用@Async异步注解

    1.java的大部分接口的方法都是串行执行的,但是有些业务场景是不需要同步返回结果的,可以把结果直接返回,具体业务异步执行,也有些业务接口是需要并行获取数据,最后把数据聚合在统一返回给前端. 通常我们 ...

随机推荐

  1. 第七周课程总结 & 实验报告(五)

    第七周课程总结 一.抽象类与接口的应用 1.实例化 2.实际应用 ---模板设计(抽象类) ---制定标准(接口) 3.设计模式 ---工厂设计 ---代理设计 ---适配器设计 二.抽象类与接口之间 ...

  2. python3笔记十五:python函数

    一:学习内容 函数概述 函数的参数与返回值 参数值传递和引用传递 关键字参数 默认参数 不定长参数 二:函数概述 1.本质:函数就是对功能的封装 2.优点: 简化代码结构,增加了代码的复用度(重复使用 ...

  3. 后盾网lavarel视频项目---vue实现动态添加和删除板块

    后盾网lavarel视频项目---vue实现动态添加和删除板块 一.总结 一句话总结: 原理就是:列表时根据vue中的videos变量中的元素来遍历的,初始时videos:[{title:'',pat ...

  4. Uploading multiple files asynchronously by blueimp jquery-fileupload

    Uploading multiple files asynchronously by blueimp jquery-fileupload   Solved. Fiddle: http://jsfidd ...

  5. 字面常量 kotlin(2)

    字面常量数值常量字面值有以下几种:十进制: 123Long 类型用大写 L 标记: 123L十六进制: 0x0F二进制: 0b00001011注意: 不支持八进制Kotlin 同样支持浮点数的常规表示 ...

  6. cors 预请求

    1.CORS的其他限制 默认允许的方法只有:GET.HEAD.POST默认允许的Content-Type:text/plain.multipart/form-data.applicaton/x-www ...

  7. Sublime text3 Version 3.2.2, Build 3211破解

    一.修改hosts hosts地址: C:\Windows\System32\drivers\etc #sublimetext 127.0.0.1 www.sublimetext.com 127.0. ...

  8. 【html】合并单元格,并居中显示文本

     现状: 想要实现的效果: 代码实现: <tr> <td colspan=" align="center">用例失败为0,无测试详情</td ...

  9. Spliterator介绍

    一.Spliterator Spliterator<T> trySplit();trySplit接口就相当于我们之前写的AccumulatorRecursiveTask类里面的分割任务,如 ...

  10. jquery.validate.js使用之自定义表单验证规则

    jquery.validate.js使用之自定义表单验证规则,下面列出了一些常用的验证法规则 jquery.validate.js演示查看 jquery validate强大的jquery表单验证插件 ...