问题出现的背景:在做一个反射调用的时候,进入了Controller层调用service的方法,却发现原先用Autowired标签自动注入的service全部都为null,随后就喜闻乐见地出现了空指针异常。
解决办法:
为了不影响原来代码的使用,加了一个判断 if(service == null) service =(XXXService) ContextLoader.getCurrentWebApplicationContext().getBean("XXXServiceImpl");
默认情况下,Spring将组件的class的第一个字母变成小写,来作为自动扫描组件的名称,比如将BaseService变成baseService,所以你可以直接用这个更名字调用组件。