SpringBoot-11-任务


异步任务

(程序不会等,直接往下执行)

实现方式:

主启动类加注解@EnableAsync+方法上加@Async
//开启异步注解功能
@EnableAsync
@SpringBootApplication
public class TaskTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TaskTestApplication.class, args);
    }

}
@Service
public class AsyncService {//异步任务
    @Async
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("正在处理……");
    }
}
@RestController
public class AsyncController {

    @Autowired
    AsyncService asyncService;

    @RequestMapping("/hello")
    public String hello(){
        asyncService.hello();//停止3秒,转圈
        return "OK";
    }
}

http://localhost:8080/hello


邮件任务

导入依赖

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

配置文件

spring.mail.username=810808038@qq.com
spring.mail.password=邮箱管理页面获取密码
spring.mail.host=smtp.qq.com
# 开启加密验证 qq特有
spring.mail.properties.mail.smtp.ssl.enable=true

发送邮件(可封装成工具类)

@SpringBootTest
class TaskTestApplicationTests {

    @Autowired
    JavaMailSenderImpl javaMailSender;

    @Test
    void contextLoads() {
        //发送简单邮件
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setSubject("你好鸭丶");
        simpleMailMessage.setText("sdfsdfsdfsdfsdfsdfsdfsdf");

        simpleMailMessage.setFrom("810808038@qq.com");
        simpleMailMessage.setTo("1714616511@qq.com");
        javaMailSender.send(simpleMailMessage);
    }

    @Test
    void contextLoads2() throws MessagingException {
        //发送复杂邮件
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
        mimeMessageHelper.setSubject("你好鸭……");
        mimeMessageHelper.setText("<p style='color:red'>谢谢你的鸭</p>",true);
        mimeMessageHelper.addAttachment("1.jpg",new File("C:\Users\yu.chen\Desktop\1.jpg"));
        mimeMessageHelper.addAttachment("2.jpg",new File("C:\Users\yu.chen\Desktop\2.jpg"));

        mimeMessageHelper.setFrom("810808038@qq.com");
        mimeMessageHelper.setTo("1714616511@qq.com");
        javaMailSender.send(mimeMessage);
    }
}

定时任务

TaskExecutor任务执行
TaskScheduler任务调度

用法也很简单,就两步

第一步:@EnableScheduling//开启定时功能的注解
第二步:@Scheduled(cron="0 4 14 * * 0-7")//在方法上添加此注解,此方法定时执行
(百度找在线Cron表达式)

https://github.com/ChenCurry/springboot-collection/tree/main/sb-11-task


击石乃有火,不击元无烟!!
原文地址:https://www.cnblogs.com/rain2020/p/13473715.html