异步任务

  1. 给hello方法添加@Async注解;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //告诉Spring这是一个异步方法
    @Async
    public void hello(){
    try {
    Thread.sleep(3000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    System.out.println("业务进行中....");
    }
  2. 要让这个注解生效,我们还需要在主程序上添加一个注解@EnableAsync ,开启异步注解功能;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @EnableAsync //开启异步注解功能
    @SpringBootApplication
    public class SpringbootTaskApplication {

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

    }

邮件任务

  1. 导入maven

    1
    2
    3
    4
    5
    <!--javax-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
  2. 实现代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    @SpringBootTest
    class Spring09ApplicationTests {
    @Autowired
    JavaMailSenderImpl mailSender;
    @Test
    void contextLoads() {
    //一个简单的邮件
    SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
    simpleMailMessage.setSubject("小狂神,你好");
    simpleMailMessage.setText("谢谢你的Java系列课程");
    simpleMailMessage.setTo("alfa_cl@qq.com");
    simpleMailMessage.setFrom("244296971@qq.com");
    mailSender.send(simpleMailMessage);
    }
    @Test
    void contextLoads1() throws MessagingException {
    //一个复杂的邮件
    MimeMessage mimeMessage = mailSender.createMimeMessage();
    // 组装
    MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
    mimeMessageHelper.setSubject("小狂神你好呀-plus");
    mimeMessageHelper.setText("<p style='color:red'>谢谢你的Java系列课程</p>",true);
    //附件
    mimeMessageHelper.addAttachment("1.jpg",new File("D:\\workplaceforidea\\springboot-study\\spring-09\\src\\main\\resources\\static\\1.jpg"));
    mimeMessageHelper.setTo("alfa_cl@qq.com");
    mimeMessageHelper.setFrom("244296971@qq.com");
    mailSender.send(mimeMessage);
    }
    }

定时任务

  1. 主程序上增加@EnableScheduling 开启定时任务功能

    image-20220909134116208
  2. 写一个需要定时执行方法,需要加@Scheduled注解,注解中写cron表达式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Service
    public class ScheduledService {
    // 在一个特定的时间执行这个方法
    // cron表达式 秒 分 时 日 月 周几
    @Scheduled(cron = "0 * * * * 0-7")
    public void hello() {
    System.out.println("hello被执行了······");
    }
    }