@Autowired注入的类为空
程序员文章站
2022-03-10 22:01:02
@Autowired注入的类为空注入的类为空可能是在注入的时候,bean还没有初始化,解决方法有两种1、在set方法的时候注入@Componentpublic class SendMailUtils { private static JavaMailSender javaMailSender; @Autowired public void setJavaMailSender(JavaMailSender javaMailSender) { SendMailU...
@Autowired注入的类为空
注入对象的那个类本身,需要通过Spring注入的方式来构建,如果通过new构造,这样会导致其Autowired 的对象为空。这是因为其本身没有交由Spring 的IOC容器进行管理,而是由JVM构建,所以Spring将无法将其本身管理的对象注入进去。
用@autowired注入JavaMailSender后,表示整个类交给了spring管理(类上加@Component ),在其他地方调用的时候,也应该从spring容器中获取,而不能用new去实例化
注入的类为空可能是在注入的时候,bean还没有初始化,解决方法有两种
1、在set方法的时候注入
@Component
public class SendMailUtils {
private static JavaMailSender javaMailSender;
@Autowired
public void setJavaMailSender(JavaMailSender javaMailSender) {
SendMailUtils.javaMailSender = javaMailSender;
}
}
2、使用@PostConstruct注解,在init方法初始化时初始化对象
@Component
public class SendMsgUtils {
@Autowired
private ReactManageService reactManageService;
@Autowired
private SendMailUtils sendMailUtils;
private static SendMsgUtils sendMsgUtils;
@PostConstruct
public void init() {
sendMsgUtils = this;
sendMsgUtils.reactManageService = this.reactManageService;
sendMsgUtils.sendMailUtils = this.sendMailUtils;
}
}
本文地址:https://blog.csdn.net/CAOXIAOMAN/article/details/112005193
上一篇: java多线程之创建线程
下一篇: 记一次用python做的多元线性回归分析
推荐阅读
-
PHP中的session不能跨页传递?一跨页就丢失,为空的!
-
PHP中的session不能跨页传送?一跨页就丢失,为空的
-
curl 上传文件 接收的地方$_FILES为空
-
ThinkPHP6源码:从Http类的实例化看依赖注入是如何实现的
-
Java 判断实体对象及所有属性是否为空的操作
-
mysql分组查询查询每个组前面40条数据里面某个字段不能连续超过8条为空的记录,请大神指导
-
SpringBoot集成shiro,MyRealm中无法@Autowired注入Service的问题
-
关于file_get_contents返回为空或函数不可用的解决方案
-
Java实现过滤掉map集合中key或value为空的值示例
-
JavaScript判断"字典"为空的方法