springboot整合异步任务、定时任务、邮件任务

本文介绍了如何在Spring Boot应用中实现异步任务处理,包括@Async注解的使用和线程池管理,同时展示了如何配置并发送定时邮件,涉及Cron表达式和QQ邮箱配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异步任务

  • 在启动类上开启异步注解功能 @EnableAsync
@EnableAsync //开启异步注解功能
@SpringBootApplication
public class Springboot09TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(Springboot09TestApplication.class, args);
    }
}
  • 将一个任务加上@Async,就标明这个任务是一个异步任务,调用时,会取线程池,单独开一条线程取执行。
@Service
public class AsyncService {
    @Async //告诉spring这是一个异步方法
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("任务正在处理中");
    }
}

定时任务

springboot自带定时功能

TaskScheduler  任务调度程序
TaskExecutor  任务执行程序
@EnableScheduling//开启定时注解功能,加到启动类
@Scheduled(cron = " * * * * * * ") //任务什么时候执行,加到执行的方法上
cron表达式 详见 

详见Cron表达式语法

邮件任务

  • 导包
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
  • yml中配置发送邮件的属性
spring:
  mail:
    username: 592844440@qq.com
    password: bocujsjfolqnbfia
    host: smtp.qq.com
    #开启加密验证
    properties.mail.smtp.ssl.enable: true
  • 编写发送邮件代码
简单的文本邮件
 		SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject("我是邮件标题");
        message.setText("我爱死你了");
        message.setTo("592844440@qq.com");
        message.setFrom("592844440@qq.com");
        sender.send(message);
复杂的多文本邮件
  		//一个复杂的邮件
        MimeMessage mimeMessage = sender.createMimeMessage();
        //true 为支持多文本上传
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
        //上传附件
        helper.addAttachment("1.jpg",new File("C:\\Users\\Administrator\\Desktop\\摄影原理.png"));
        helper.addAttachment("2.jpg",new File("C:\\Users\\Administrator\\Desktop\\摄影原理.png"));
        //编写主题和内容
        helper.setSubject("我爱死你了");
        //text 设置为true,则可以将内容以html格式输出
        helper.setText("<div style=color:red>我想和你看日落</div>",true);

        helper.setTo("592844440@qq.com");
        helper.setFrom("592844440@qq.com");
        //发送
        sender.send(mimeMessage);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值