想在工具类的静态方法中调用spring管理的服务层对象,可报空指针了

项目启动的时候,是已经把对象注入成功了的

报错信息

想在工具类的静态方法中调用spring管理的服务层对象,可报空指针了



关注RobotAnswerUtil 第 50行,RobotAnswerUtil.RobotAnswerService = this.RobotAnswerService 有问题,这行的 RobotAnswerUtil 是 RobotAnswerUtil 类中的静态变量,等同于 this.RobotAnswerService = this.RobotAnswerService,相当于没赋值。
改正方式如下:
@Component
public class RobotAnswerUtil implements ApplicationContextAware {
private static RobotAnswerService robotAnswerService;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
RobotAnswerUtil.robotAnswerService = applicationContext.getBean(RobotAnswerService.class);
}
public static String answer(String message) {
RobotAnswerUtil.robotAnswerService.findAnswer();
return null;
}
}
如有帮助,请采纳。