You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC无法找到OrderController映射及@NonNullApi告警问题求助

问题1:getServletMappings方法的@NonNullApi告警解决

告警触发原因:你继承的AbstractAnnotationConfigDispatcherServletInitializer所在的org.springframework.web.servlet.support包,Spring官方已标注类级别的@NonNullApi注解,约定该包下所有方法的返回值、入参默认非空。你重写的方法没有显式声明返回值非空,触发IDE的空安全静态检查告警。
解决方法二选一即可:

  • 给重写的三个方法加上Spring提供的@NonNull注解,示例:
import org.springframework.lang.NonNull;
@Override
@NonNull
protected String[] getServletMappings() {
    return new String[] { "/api/*" };
}

所有三个重写方法都加上注解即可消除告警。

  • 若不需要严格空安全检查,直接给Initializer类加上@SuppressWarnings("null")注解,忽略空检查告警。

问题2:接口访问404解决

问题根源:你配置类的@ComponentScan仅配置了扫描model包,位于controllers包下的OrderController没有被Spring扫描到,自然不会注册接口映射。
修复步骤:

  1. 修改Config类的@ComponentScan注解,加入controllers包的扫描路径:
@ComponentScan(basePackages = {"model", "controllers"})
  1. 确认OrderDAO类已经加了@Repository或者@Component注解,且位于model包下,否则会出现依赖注入失败异常。
  2. 访问接口时注意路径前缀:你配置的DispatcherServlet映射路径是/api/*,所以正确的访问路径格式为http://你的服务地址/应用上下文/api/orders,不要遗漏/api前缀。

内容的提问来源于stack exchange,提问作者Steb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:15:03