问题1:为什么只有在Junit类中才能运行@Autowired
@Autowired
private FeignDeviceService feignDeviceService;
@Test
public void test4() {
feignDeviceService.queryAll();
}
然后发现你用main方法,注入Service,结果报错:
得到结论:静态方法中不可调用非静态方法,这与JVM加载类的机制有关
既然不能调用非静态方法,那就把service设置为static静态:
结果运行报错:
得到结论:spring自动注入,使用spring框架的很常用如果在静态方法中调用此注入类的方法,发现注入为’null’;原因不是spring未注入,而是被static方法给’清空’了
用上@PostConstruct和它的init()就完美解决了:
@Autowired
private DocumentDetailMapper documentDetailMapper;