问题:在工具类中调用service,但是使用@Autowired结果是null;工具类中的方法都是static静态的方法,静态方法使用的方法和对象都只能是静态的,正常情况下@Autowired无法注入静态的bean。
解决:将平时使用的注入方式
@Autowired private TestService testService;
换成
private static SequenceService sequenceService = SpringContextHolder.getBean(SequenceService.class);
就可以了。
public class TestUtils {
//主要是这句
private static TestService testService = SpringContextHolder.getBean(TestService.class);
public static String getCode() {
//查询code
String code = sequenceService.selectCode();
return code;
}
public static void main(String[] args) {
System.out.println(PerCodeUtils.getCode());
}
}
参考链接:使用SpringContextHolder获取beanhttps://blog.csdn.net/qq_36631900/article/details/88555211