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("722222225@qq.com");
        simpleMailMessage.setFrom("833333332@qq.com");
        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("711111115@qq.com");
        mimeMessageHelper.setFrom("822222222@qq.com");
        //内容使用html true
        mimeMessageHelper.setText("<b style='color:red'>test mimeMessage</b>",true);
        mimeMessageHelper.addAttachment("1.png", new File("D:\\1.png"));
        mailSender.send(mimeMessage);

    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值