1.异步任务

  1. 在要异步的方法上加 @Async注解

    1. //告诉spring这是一个异步方法(原理就会开启一个线程池调用这个方法)
    2. @Async
    3. public void hello(){
    4. try {
    5. Thread.sleep(3000);
    6. } catch (InterruptedException e) {
    7. e.printStackTrace();
    8. }
    9. System.out.println("任务开始处理");
    10. }
  2. 在启动类上加@EnableAsync ```java @SpringBootApplication @EnableAsync//开启异步注解功能 public class EsApplication {

  1. <a name="UvZTb"></a>
  2. # 2.定时任务
  3. 1. 在启动类上加@EnableScheduling
  4. ```java
  5. @EnableScheduling
  6. public class EsApplication {
  1. 在要定时执行的方法啥加@Scheduled(cron = “ * MON-FRI”)
    1. 以下是每周一到周五每秒都执行一次
      1. /**
      2. * second(秒) minute(分), hour(时), day of month(日), month(月) and day of week(周几)
      3. * "0 * * * * MON-FRI"(每周一到周五整秒的时候执行一次)
      4. * // @Scheduled(cron = "0 * * * * MON-FRI")//每周一到周五整秒的时候执行一次
      5. // @Scheduled(cron = "* * * * * MON-FRI")//每周一到周五每秒都执行一次
      6. // @Scheduled(cron = "0,2,3,4 * * * * MON-FRI")//周一到周五每分钟的0-4整秒的时候执行(枚举)
      7. // @Scheduled(cron = "0-4 * * * * MON-FRI")//周一到周五每分钟的0-4整秒的时候执行(区间)
      8. @Scheduled(cron = "0/4 * * * * MON-FRI")//每4秒执行一次
      9. */
      10. @Scheduled(cron = "* * * * * MON-FRI")
      11. public void helloScheduled(){
      12. System.out.println("hello");
      13. }
      image.png
      image.png

      3.邮件任务

      3.1pom引入依赖

      1. <dependency>
      2. <groupId>org.springframework.boot</groupId>
      3. <artifactId>spring-boot-starter-mail</artifactId>
      4. </dependency>

      3.2发件人邮箱设置

      这里以qq邮箱为例,首先要开启smtp服务,然后就是要生成授权码(这个授权码才是邮箱的密码),我自己生成的授权码是:srqmtrolyymhbada
      image.png
      activation

      3.2配置application

      ```json spring.mail.username=1411344876@qq.com spring.mail.password=srqmtrolyymhbada spring.mail.host=smtp.qq.com spring.mail.properties.mail.smtp.ssl.enable=true
  1. <a name="Pj6cs"></a>
  2. ## 3.3测试发邮件
  3. 1. 简单的发文本
  4. ```java
  5. @Autowired
  6. JavaMailSenderImpl javaMailSender;
  7. @Test
  8. public void testmail(){
  9. SimpleMailMessage message = new SimpleMailMessage();
  10. //邮件设置
  11. message.setSubject("今晚技术部开会");//标题
  12. message.setText("18点开会,地址技术部办公室,不得迟到");//内容
  13. message.setTo("1913284695@qq.com");//发给谁
  14. message.setFrom("1411344876@qq.com");//谁发的
  15. javaMailSender.send(message);
  16. }
  1. 发带附件的邮件

    1. @Test
    2. public void test2() throws Exception{
    3. //创建一个复杂的消息邮件
    4. MimeMessage message=javaMailSender.createMimeMessage();
    5. MimeMessageHelper helper = new MimeMessageHelper(message,true );
    6. //邮件设置
    7. helper.setSubject("今晚技术部开会");//标题
    8. helper.setText("<b>18点开会</b><br>地址技术部办公室,不得迟到",true);//内容
    9. helper.setTo("1913284695@qq.com");//发给谁
    10. helper.setFrom("1411344876@qq.com");//谁发的
    11. //上传文件
    12. helper.addAttachment("1.png",new File("D:\\upimgs\\article\\1.png"));
    13. javaMailSender.send(message);
    14. }