虽然说是学了SpringMVC,但只能算是入门水平,最近在做一个基于SpringMVC的项目,希望能通过这个项目能够对SpringMVC有深入的理解。这不,今天因为一个小Bug,发现了一直以来没有注意到的“常识“。
Bug如下:
Servlet.service() for servlet [spring3] in context with path [/ytc0.1] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
- 问题源于在Controller中没有写Service的getter和setter方法,导致SpringMVC想自动调用这个方法的时候却找不到。
- 这里发现SpringMVC在Controller中调用Service的实现机制应该就是:通过getter来获取Service,并且Controller层中声明的Service名要跟Service层的注解一致。
- 项目都进行一半,为什么现在才发现这个问题。表面上是因为现在这个项目是用的别人的模板,该复制的复制,该改的改,但总会有忽略的地方,现在发现的这个问题就是如此。其实究其根本,自己对SpringMVC的理解还不够深入,没有系统的学习(但在项目实战过程中学习其实也不失为一个好办法嘛。。。。。)不能找借口了,有时间要找些相关书籍来学习学习才行。。