在编写一个工具类的时候,需要用到静态对象service,按照平常一样,使用@Autowired注入,调用方法,却发现控制台报了空指针异常。
public class SftpUtil {
@Autowired
private static ExternalService externalService;
报错的原因,与使用静态变量经常出错的原因一样,类加载静态变量,@Autowired注入的service还没加载。
解决方法:
1、@Autowired注解setter方法
public class SftpUtil {
private static ExternalService externalService;
@Autowired
public void setExternalService(ExternalService externalService) {
SftpUtil.chatRecodeService = chatRecodeService;
}
2、@Autowired 注解构造函数
public class SftpUtil {
private static ExternalService externalService;
@Autowired
public SftpUtil(ExternalService externalService) {
SftpUtil.chatRecodeService = chatRecodeService;
}