【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遇到棘手的問題時更有可能找出更根本的解決辦法。同樣的,學習其他東西時,對於基礎的東西要所認識,遇到問題才能更好地解決。

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