Spring MVC 是美团点评很多团队使用的 Web 框架。在基于 Spring MVC 的项目里,注解的使用几乎遍布在项目中的各个模块,有 Java 提供的注解,如:@Override、@Deprecated 等;也有 Spring 提供的注解,如:@Controller、@Service、@Autowired 等;同时还可能有自定义注解等。注解一方面可以作为标记说明使用;另一方面也能帮助我们省去一些配置工作,加快开发速度。注解就像语法糖一样,我有时候会 “随心所欲” 的把它带入到代码里,一直乐 (hú)此 (lǐ) 不(hú)疲(tú)。直到笔者遇到了一个由 @Service 注解引发的空指针问题时,才真正意识到乱用注解的危害,同时也有了下文的深入探讨!