快捷搜索:

【SpringBoot学习09】任务与邮件

1. 任务(Task)

springboot整合第三方技术,今天我们来说说任务系统,其实这里说的任务系统指的是定时任务。定时任务是企业级开发中必不可少的组成部分,诸如长周期业务数据的计算,例如年度报表,诸如系统脏数据的处理,再比如系统性能监控报告,还有抢购类活动的商品上架,这些都离不开定时任务。本节将介绍task定时任务技术。

spring根据定时任务的特征,将定时任务的开发简化到了极致。怎么说呢?要做定时任务总要告诉容器有这功能吧,然后定时执行什么任务直接告诉对应的bean什么时间执行就行了,就这么简单,一起来看怎么做

1.1 开启定时任务功能

开启定时任务功能,在引导类上开启定时任务功能的开关,使用注解@EnableScheduling

@SpringBootApplication
//开启定时任务功能
@EnableScheduling
public class Springboot15TaskApplication {
          
   

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

}

1.2 定义Bean

@Component
public class Mytask {

    //每隔两秒进行,任意分钟,小时,天,月,不限星期
    @Scheduled(cron = "0/2 * * * * ?")
    public void love(){
        System.out.println(Thread.currentThread().getName()+" love hx");
    }
}

有需要还可以再yml配置文件中配置相关信息。

spring:
  task:
    scheduling:
      thread-name-prefix: Adrian

根据定时设置,在两秒钟之后执行一次操作。

2. 邮件

springboot整合第三方技术,今天我们来说说邮件系统,发邮件是java程序的基本操作,springboot整合javamail其实就是简化开发。不熟悉邮件的小伙伴可以先学习完javamail的基础操作,再来看这一部分内容才能感触到springboot整合javamail究竟简化了哪些操作。

学习邮件发送之前先了解3个概念,这些概念规范了邮件操作过程中的标准。

    SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议 POP3(Post Office Protocol - Version 3):用于接收电子邮件的标准协议 IMAP(Internet Mail Access Protocol):互联网消息协议,是POP3的替代协议

2.1 导入springboot整合javamail的starter

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

2.2 配置邮箱的登录信息

spring:
  mail:
    host: smtp.126.com
    username: test@126.com
    password: test

2.3 使用JavaMailSender接口发送邮件

定义接口及实现类

public interface MailService {
          
   
    void sendMail();
}

下面的from和to分别填写发邮箱和接收邮箱的账号

运行程序,就可以在接收方的邮箱中找到对应邮件。注意,这里接收双方都得开启smtp服务,不然发送会失败。

2.4 发送网页正文及附件邮件

总结

springboot整合javamail其实就是简化了发送邮件的客户端对象JavaMailSender的初始化过程,通过配置的形式加载信息简化开发过程

最后,感兴趣的小伙伴也可以将任务和邮件结合起来,定时发送文件。

经验分享 程序员 微信小程序 职场和发展