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 依赖表,看有没有红线,再根据红线的指向关系,判断是否是相关引入组件有冲突。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值