SpringBoot任务(异步,定时,邮件)

1.异步任务

在主类中加上@EnableAsync//开启异步注解

在方法上加上@Async

service:

    @Async
    public void hello() {
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("处理数据中");
    }

controller:

     @RequestMapping("/hello1")
    public String hello1() {
        asyncTaskService.hello();
        return "success";
    }

会发现先返回success,3秒后输出处理数据中。

 

2.定时任务

在主类加上@EnableScheduling//开启定时任务注解 

在需要定时的方法上加上@Scheduled注解,然后写上cron表达式

import java.text.SimpleDateFormat;
import java.util.Date;

@Service
public class ScheduleService {

    @Scheduled(cron = "0 * * * * MON-SAT")
    public void hello() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = sdf.format(new Date());
        System.out.println(date + " hello...");
    }
}

程序运行后,该方法就会按照cron表达式自动执行。

 

3.邮件任务

3.1 引入依赖

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

3.2 在application.properties中配置邮件相关信息

#配置邮件发送
spring.mail.username=132XXXXXX@qq.com
spring.mail.password=XXXXXXXXXXX
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.stmp.ssl.enable=true

password不是账户密码,是授权码。

3.3 发送测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class mailSendTest {

    @Autowired
    JavaMailSenderImpl mailSender;


    @Test
    public void contextLoads() {
        SimpleMailMessage message = new SimpleMailMessage();

        message.setSubject("Hello,world!");
        message.setText("text");

        message.setTo("XXXXXXX@qq.com");
        message.setFrom("XXXXXXXX@qq.com");

        mailSender.send(message);
    }
}

ps:因为要使用spring自动装配的JavaMailSenderImpl所以需要把单元测试集成到springboot中。使用RunWith(SpringRunner.class) 和 @SpringBootTest即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值