SpringBoot自学好几天 中途开始写笔记 SpringBoot 与 任务 20190303

  1. 异步任务
//主方法 加EnableAsync注解
@EnableAsync
@SpringBootApplication
public class SpringBootTaskApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootTaskApplication.class, args);
    }
}
//service测试
@Service
public class TaskService {
    /**
     * 方法 先睡3秒  再返回success
     * @return
     */
     @Async
    public void AycTest(){
        try {
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("执行service");
    }
}
//controller测试 
@RestController
public class TaskController {
    @Autowired
    TaskService taskService;
    @GetMapping("/hello")
    public String test(){
        taskService.AycTest();
        return "succ";
    }
}

测试结果:请求/hello的时候不会阻塞三秒 会直接返回结果

  1. 定时任务
//EnableScheduling
@EnableScheduling
@EnableAsync
@SpringBootApplication
public class SpringBootTaskApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootTaskApplication.class, args);
    }
}

//@Scheduled 注解
@Service
public class ScheduledService {
    @Scheduled(cron = "0 * * * * MON-SAT")
    public void TestScheduled(){
        System.out.println("定时!");
    }
}

SpringBoot自学好几天 中途开始写笔记 SpringBoot 与 任务 20190303_第1张图片

core表达式
https://blog.csdn.net/qq_36291682/article/details/84237676

这里的core表达式1和7都表示周日 1-6表示周1到周6 其他地方不一定是
例子:
SpringBoot自学好几天 中途开始写笔记 SpringBoot 与 任务 20190303_第2张图片

  1. 邮件任务
    1)引入依赖
 <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-mailartifactId>
        dependency>

2)邮件发送流程 需要配置发件人的用户名密码 以及他所在的邮件服务器的地址
SpringBoot自学好几天 中途开始写笔记 SpringBoot 与 任务 20190303_第3张图片
3) 配置文件

[email protected]
spring.mail.password=xxxxxxxxxxxxxx # 自己的授权吗
spring.mail.host=smtp.qq.com
####qq连接 需要额外的配置
spring.mail.properties.mail.smtm.ssl.enable=true

配置自己的qq邮箱作为服务器 需要开启
qq官方有说明:
https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=26&&no=308

4)发送简单邮件

   @Autowired
    JavaMailSenderImpl sender;
    @Test
    public void contextLoads() {
        SimpleMailMessage simple = new SimpleMailMessage();
        //标题
        simple.setSubject("通知");
        //内容
        simple.setText("通知你是个大好人!");
        //发送给谁
        simple.setTo("[email protected]");
        //是谁发的
        simple.setFrom("[email protected]");
        sender.send(simple);
    }

查看我的163邮箱
在这里插入图片描述
SpringBoot自学好几天 中途开始写笔记 SpringBoot 与 任务 20190303_第4张图片
5)负责邮件

 @Test
    public void test() throws MessagingException {
        //创建复杂邮件
        MimeMessage mimeMessage = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

        //邮件设置
        helper.setSubject("标题");
        //第二个参数是是否转换成html
        helper.setText("点击进入",true);
        //发送给谁
        helper.setTo("[email protected]");
        //是谁发的
        helper.setFrom("[email protected]");
        //上传文件
        helper.addAttachment("1.jpg",new File("C:\\Users\\LM\\Desktop\\1.jpg"));
        //发送
        sender.send(mimeMessage);
    }

163中查看:
SpringBoot自学好几天 中途开始写笔记 SpringBoot 与 任务 20190303_第5张图片

你可能感兴趣的:(SpringBoot)