Spring不能直接@autowired注入Static变量/ 关于SpringBoot的@Autowired 静态变量注入
时间:2019-11-06
本文章向大家介绍Spring不能直接@autowired注入Static变量/ 关于SpringBoot的@Autowired 静态变量注入,主要包括Spring不能直接@autowired注入Static变量/ 关于SpringBoot的@Autowired 静态变量注入使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
昨天在编写JavaMail工具类的时候,静态方法调用静态变量,这是很正常的操作,当时也没多想,直接静态注入。
@Component public class JavaMailUtil { @Autowired private static JavaMailSenderImpl mailSender; /** * 发送包含简单文本的邮件 */ public static void sendText(String title,String text) { SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); // 设置收件人 simpleMailMessage.setTo(new String[] {"3213452105@qq.com"}); //寄件人 simpleMailMessage.setFrom("857776215@qq.com"); simpleMailMessage.setSubject(title); simpleMailMessage.setText(text); // 发送邮件 mailSender.send(simpleMailMessage); System.out.println("JavaMailUtil类提示:---邮件已发送---"); } }
结果就出现了空指针异常。查询了之后发现 @Autowired不能给静态变量注入,所以出现空指针异常。然后开始找解决方法,暂时找到了一个能用的方法。
@Component public class JavaMailUtil { private static JavaMailSenderImpl mailSender; @Autowired private JavaMailSenderImpl javaMailSender; @PostConstruct public void init(){ mailSender = javaMailSender; } /** * 发送包含简单文本的邮件 */ public static void sendText(String title,String text) { SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); // 设置收件人 simpleMailMessage.setTo(new String[] {"3213452105@qq.com"}); //寄件人 simpleMailMessage.setFrom("857776215@qq.com"); simpleMailMessage.setSubject(title); simpleMailMessage.setText(text); // 发送邮件 mailSender.send(simpleMailMessage); System.out.println("JavaMailUtil类提示:---邮件已发送---"); } }
原文地址:https://www.cnblogs.com/shanheyongmu/p/11803970.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释