基于:【狂神说Java】SpringBoot最新教程IDEA版通俗易懂
目录
1 异步
类似于多线程,主线程把任务交给子线程,然后自己直接不管,给前端较好的体验。
1.1 主程序注解@EnableAsync
@SpringBootApplication
@EnableOpenApi //开启swagger接口测试
@EnableAsync // 开启异步任务
@EnableScheduling //开启定时功能
public class DeepmezProApplication {
public static void main(String[] args) {
SpringApplication.run(DeepmezProApplication.class, args);
}
}
1.2 使用@Async
在方法上面使用注解:
@Async
public void test(){
System.out.println("hello");
}
2 定时
定时任务,什么时候执行。
2.1 主程序注解@EnableScheduling
@SpringBootApplication
@EnableOpenApi //开启swagger接口测试
@EnableAsync // 开启异步任务
@EnableScheduling //开启定时功能
public class DeepmezProApplication {
public static void main(String[] args) {
SpringApplication.run(DeepmezProApplication.class, args);
}
}
2.2 使用@Scheduled
@Scheduled(cron = "0/2 * * * * ?") // 秒 分 时 日 月 周几
public void test() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
}
这里的重点难点在于cron
表达式,可以通过表达式生成器是生成
3 邮件服务
3.1 导入依赖
<!--email-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
3.2 配置
# 邮箱配置
spring:
mail:
username: ××××××@qq.com
password: ××××××××××××××××××
host: smtp.qq.com
# 开启安全加密验证
properties:
mail.smtl.ssl.enable: true
我这里使用的是qq的,需要加安全验证,用户名和密码可以去qq的pop3账户设置里面找;
3.3 启用类
@Service
public class EmailServiceImpl implements EmailService {
@Autowired
JavaMailSenderImpl mailSender;
// 简单邮件
public void simpleEmailTest() {
// 邮件消息
SimpleMailMessage message = new SimpleMailMessage();
// 标题
message.setSubject("您好,这是标题");
// 正文
message.setText("您好,这是正文");
// 发给谁
message.setTo("×××××××××@qq.com");
// 谁发的
message.setFrom("×××××××××@qq.com");
//发送
mailSender.send(message);
}
// 多媒体邮件
public void mimeEmailTes() {
// 复杂邮件
MimeMessage message = mailSender.createMimeMessage();
// 帮助组装
MimeMessageHelper helper = null;
try {
helper = new MimeMessageHelper(message, true);
// 标题
helper.setSubject("您好,这是标题");
// 正文
helper.setText("<h1>您好,这是html正文</h1>", true);
// 附件
helper.addAttachment("这是附件.jpg", new File("src/main/resources/images/me.jpg"));
// 发给谁
helper.setTo("×××××××@qq.com");
// 谁发的
helper.setFrom("×××××××@qq.com");
mailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
当配置邮箱服务之后,可以通过依赖注入拿到JavaMailSenderImpl
的实例,进行邮件的发送;