springboot邮件发送工具类

我想搭建一个简单的邮件发送工具内,但是我不知道为什么,每次都要报java.lang.NullPointerException
util:

//邮件验证工具集合
package com.zzj.util;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class demo01 {
    @Autowired
    private static JavaMailSender mailSender;
    public static boolean Emailsend(String Email, int code) {
//        判断邮箱是否存在
        # MybatisUtil.ifEmail(Email) 是指判断当前数据库有没有对应的数据,有返回true没有返回false。这里默认返回true
        if (MybatisUtil.ifEmail(Email)) {
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            simpleMailMessage.setFrom("875198099@qq.com");
            simpleMailMessage.setTo(Email);
            simpleMailMessage.setSubject("邮箱验证");
            simpleMailMessage.setText("您的【" + Email + "】验证码是:" + code + ",提供给他人会导致账户被盗和财产损失,若非本人操作,请立即修改密码");
            try {
                mailSender.send(simpleMailMessage);
                System.out.println("邮件发送成功");
                return true;
            } catch (MailException e) {
                System.out.println("邮件发送失败" + e);
                return false;
            }
        } else {
            System.out.println("邮箱不存在");
            return false;
        }
    }
}

测试类:

public class MysqlTest {
    @Test
    public void TestDemo04(){
        System.out.println(demo01.Emailsend("xinjiandianziyouxiang@outlook.com",554785));
    }
}

异常报错:

img

参考文献:
https://blog.csdn.net/qq_33957967/article/details/122797807?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167696243916800225553542%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167696243916800225553542&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-122797807-null-null.blog_rank_default&utm_term=email&spm=1018.2226.3001.4450

// 这个在报null 指针,
private static JavaMailSender mailSender;

springboot注入对象不要要static

  • 你 自测类里 直接调用 demo1的方法, 里面需要注入的 邮件发送对象 , 没有任何框架来注入它,也就是说它是 null,下面调用自然报了空指针。
  • 你要么自己实例化 这个 JavaMailSender, 要么 通过springboot测试框架或spirng测试框架 注入这个JavaMailSender ,然后传入到 Emailsend方法里作为入参。

你要是写成静态方法就不要springboot注入了。
你要是用springboot的注入那就把static都去掉,后面调用的的时候都通过springboot注入类调用。
你这个测试类也不能这么写