日常BUG记录
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
[Request processing failed;
nested exception is java.lang.NullPointerException] with root cause
异常本质,属性注入失败
常见原因:
Controller类的 @ResponseBody没有加
使用mapper的地方没有加 @Autowired
这两种比较简单,不在解释,下面说一种少见的
Service中
public class MsgService {
@Autowired
private MsgMapper msgMapper;
public List<Msg> findAll(){
List<Msg> msgList=msgMapper.findAll();
System.out.println("---------------");
return msgList;
}
}
Controller中
@Controller
public class HelloController {
MsgService msgService=new MsgService();
@RequestMapping("findAll")
@ResponseBody
public List<Msg> findAll(){
return msgService.findAll();
}
}
其中MsgMapper 作为MsgService 的成员变,是通过属性注入,而HelloController 中的MsgService 的实体类是new出来的,也会导致注入失败。
解决办法:
HelloController 中的MsgService 同样通过属性注入解决
@Controller
public class HelloController {
@Autowired
private MsgService msgService;
@RequestMapping("findAll")
@ResponseBody
public List<Msg> findAll(){
return msgService.findAll();
}
}