Exception in thread "main" java.lang.AbstractMethodError: org.springframework.boot.context.config


Exception in thread “main” java.lang.AbstractMethodError: org.springframework.boot.context.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)Z
今天想學習 一下SpringBoot2的Scheduled定時任務功能。在網上搜了幾篇博客看下,都說很簡單。就把之前的一個工程文件打開,在啟動類加上注解@EnableScheduling,在ServiceImpl方法上加上注解@Scheduled(cron = “30,40,50 * * * * ?”),想測試一下分別在30秒,40秒,50秒的時候,是不是能自動執行我寫的一個簡單的MybatisPlus3.x插入記錄的功能。一啟動,就報如標題上的錯誤提示。經過漫長的四個小時的上網查找相關報錯的解決方法,加上最后一刻自己的福至心靈,終於解決問題。程序跑通,能正常定時執行sql插入命令。感覺很有必要復盤一下。記錄如下。

之前的那個工程,是從網上下載的一個網友的MybatisPlus3.x的SpringMVC示例項目。由於公司項目都是用的SpringBoot2.x,我就把它改造了一下。平時的測試方法都是直接寫在Controller層,沒有另外去寫service。還有它原來帶過來的一些MVC配置文件沒有刪除。反正能跑起來,測試感受一下MP3.X的簡潔sql用法,也還感覺 不錯。

可是,今天我寫了一個service及實現類,就報如標題所示的錯誤了。百思不得解。
找到的網上第一篇文章說,把springboot的版本改成1.5.19就對了,改了是能行,但是,我們現在的項目都是springboot2.1的,不能這樣往后退啊。第二篇文章說是要加一個Listener到web.xml,網上搜了一下,才發現springboot是不需要配web.xml文件的。第三篇文章說要在啟動類中加@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}),去掉數據源的引用,發現也不行。第四篇文章說引用jar包有沖突,說在idea中打開pom的依賴圖表,刪除沖突。我點了兩下,沒有刪除掉那根紅線。突然發現是springboot指向了spring-context。於是就在疑惑srping-boot,跟spring-context是啥關系。回到我的項目的pom中,

<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>

突然感覺,這是spring的配置,會不會是多余的呢?那springboot是不是還需要多加這樣的配置呢?網上一查,才明白,springboot已經含了這兩樣依賴。去掉后,程序正常。不再報錯。

總結: 如果程序報了很奇怪的錯誤,網上也很難查到有同樣的錯誤解決方法的話,考慮是不是jar包沖突。idea中,在pom文件鼠標右鍵,查看diagram 依賴表,看有沒有紅線,再根據紅線的指向關系,判斷是否是相關引入組件有沖突。
————————————————
版權聲明:本文為CSDN博主「流水曉風1」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lx12345_/article/details/89426533


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM