SpringBoot使用SpringTask的异步任务,定时任务,邮件任务

使用异步任务很简单

开启异步任务

@EnableAsync
@SpringBootApplication
public class TaskApplication {

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

在service中写异步任务

@Service
public class UserService {

    @Async
    public void test(){
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("=====================> ");
    }

在controller中调用异步任务,会发现,并不用等2秒,就显示出来了


@RestController
public class UserController {

    @Autowired
    UserService userService;

    @GetMapping("/test")
    public String test(){

        userService.test();

        return "=================>";

    }
}

使用SpringTask的定时任务

开启定时任务

@EnableScheduling
@SpringBootApplication
public class TaskApplication {

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

在service中写定时任务


    /**
     *  second, minute, hour, day of month, month, day of week
     */
    @Scheduled(cron ="* * * * * MON-SUN")
    public void test2(){
        System.out.println("===================>test");
    }

启动springboot,会发现每秒打印===================>test
更多定时任务规则可以参照如下
这里写图片描述

接下来邮件任务
邮件发送,我使用qq邮件,在qq邮箱中开启SMTP
这里写图片描述
按照要求发送短信后,得到邮箱的加密密码

在pom.xml中引入依赖

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

在application.properties中配置

spring.mail.username=811111122@qq.com
#填写得到的加密密码
spring.mail.password=namtywudfwsrffhd
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.smtp.ssl.enable=true

发送简单邮件使用SimpleMailMessage


    @Autowired
    JavaMailSenderImpl mailSender;

    @Test
    public void contextLoads() {

        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setSubject("test mail subject");
        simpleMailMessage.setText("test mail text");
        simpleMailMessage.setTo("[email protected]");
        simpleMailMessage.setFrom("[email protected]");
        mailSender.send(simpleMailMessage);

    }

想要发送内容丰富的邮件,使用MimeMessage


    @Autowired
    JavaMailSenderImpl mailSender;

    @Test
    public void test2() throws MessagingException {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        //有上传文件 true
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        mimeMessageHelper.setSubject("test mimeMessage");
        mimeMessageHelper.setText("test mimeMessage");
        mimeMessageHelper.setTo("[email protected]");
        mimeMessageHelper.setFrom("[email protected]");
        //内容使用html true
        mimeMessageHelper.setText("<b style='color:red'>test mimeMessage</b>",true);
        mimeMessageHelper.addAttachment("1.png", new File("D:\\1.png"));
        mailSender.send(mimeMessage);

    }

猜你喜欢

转载自blog.csdn.net/lhc0512/article/details/81104501