【Spring】java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

Spring无法找到某些类的问题

在使用Spring我们经常会遇到某些外部引用的类无法找到或无法加载的问题,特别是使用依赖注入时遇到此类问题特别头痛,我在此列出几个可能的情况,希望能帮到遇到此类问题的人

  1. 项目中没有引入响应的jar包

解决办法:根据报错信息确定缺少哪些包,搜索下载对应包导入并添加为依赖

  1. 导入了jar包但是运行时却仍然找不到对应类(笔者在使用IDEA时遇到此问题,不知道在eclipse中是否会出现)

情况描述:IDEA在写Spring项目时(没有使用SpringBoot、Maven情况下),可能会出现导入了jar包并且将其加入了依赖但build项目之后,项目的发布文件夹下(out/artifacts/[项目名]/lib)却没有对应jar包,笔者对此感到奇怪,这种情况有两种解决办法:

  1. 手动将jar包添加到out/artifacts/[项目名]/lib下
  2. 将jar包的依赖添加到Spring的依赖内部,此时项目build之后是会自动加入到发布文件夹内,如下图所示

在这里插入图片描述

  1. 对应的jar包与Spring版本不兼容

如果排除了前两种情况,再有可能的原因应该是所引用的jar包与Spring版本不兼容,此时需要到到网上搜索你所使用的Spring版本与相应jar的兼容版本是什么,重新下载添加正确的版本

一点心得:最初使用Spring写项目的时候,由于对Spring了解的不够深入,为了能够快速搭建环境、快速上手写代码,笔者选择了使用SpringBoot,使用SpringBoot确实方便、简单,比纯手动搭建Spring环境遇到少很多的配置问题,但时候回过头来尝试使用纯手动搭建Spring时发现无从下手,重新搜索相关配置并了解其中配置的具体表示什么,发现对其中的内容有了更深的认识。我的观点是,开发Spring可以选择更快速便捷的SpringBoot,但也要对Spring的手动配置及其中一些原理(依赖注入、AOP等)有一定的认识,这样在使用SpringBoot遇到棘手的问题时更有可能找出更根本的解决办法。同样的,学习其他东西时,对于基础的东西要所认识,遇到问题才能更好地解决。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章