1邮件发送

1.1编写配置文件

#QQ邮箱
spring.mail.username=2082620872@qq.com
#密码
spring.mail.password=rntexrvtuhmvefia
#固定的
spring.mail.host=smtp.qq.com
#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true

1.2导入依赖

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

1.3注入类

 //自动注入一个邮箱发送
    @Autowired
    JavaMailSenderImpl mailSender;


@Test       //简单邮件
    void contextLoads() {
        //邮件发送
        SimpleMailMessage mailMessage=new SimpleMailMessage();
        mailMessage.setSubject("李泽宏你好");   //标题
        mailMessage.setText("方根你好帅");    //内容
        mailMessage.setTo("3344324253@qq.com");    //发送给谁
        mailMessage.setFrom("2082620872@qq.com");   //发送者
        mailSender.send(mailMessage);
    }

    @Test
    void contextLoads2() throws MessagingException {
        //复杂的邮件
       MimeMessage mimeMailMessage= mailSender.createMimeMessage();
       //组装
        MimeMessageHelper helper=new MimeMessageHelper(mimeMailMessage,true);//true表示开启mimeMailMessage
        helper.setSubject("哈哈哈");//标题
        helper.setText("干饭了");//内容  setText("卡视角就开始担",true)表示可以解析HTML
        //附件-------1.JPG自定义的图片名字,后面的是图片路径
        helper.addAttachment("1.jpg",new File("D:\\360downloads\\wpcache\\srvsetwp\\2019361.jpg"));
        helper.addAttachment("2.jpg",new File("D:\\360downloads\\wpcache\\srvsetwp\\2033423.jpg"));
        helper.setTo("3344324253@qq.com");    //发送给谁
        helper.setFrom("2082620872@qq.com");//发件人
        mailSender.send(mimeMailMessage);
    }

2.定时器

2.1在主main方法中开启

@EnableScheduling   //开启定时任务的注解

2.2在类上加入以下注解

    //在固定的时间执行该方法
    //cron表达式-----代表  秒-分-时-日-月   最后代表星期几
    //0 21 14 * * 0-7   每天的14点21分执行
    //0 0/5 14,15 * * 0-7   代表每天14,15点执行    0/5代表5分钟执行一次
    @Scheduled(cron = "0/1 * * * * 0-7")
    public void Hello(){
        System.out.println("执行了");
    }

3.异步请求

3.1在主main方法中加入以下注解

//Enable表示自动开启
@EnableAsync //开启异步注解

3.2在serviceImpl层中写入

 //告诉spring这是一个异步方法
    @Async  
    public void Hello(){
        try{//停止3秒
            Thread.sleep(3000);
        }catch (Exception e){
            e.printStackTrace();
        }
        System.out.println("数据在处理");
    }

 

3.3控制层写入

@RestController
public class AsynController {

    @Autowired
    private AsynService asynService;

    @RequestMapping(value = "/hello")
    public String Hello(){
        asynService.Hello();//停止3秒
        return "OK";
    }
}