idea新建的springBoot项目,自动生成的入口类中提示错误Cannot resolve symbol '@springbootapplication'

Cannot resolve symbol '@springbootapplication'解决方法

今天自己搭建了一个十分简单的springBoot项目,用的maven做jar包的管理工具,但是项目初始化完成后自动生成的入口类提示有错误,Cannot resolve symbol '@springbootapplication':不能解析springbootapplication符号关键字。这个错误给人第一反应应该就是springBoot支持jar包导入有问题。但是长久以来养成习惯,遇到问题直接百度的缘故,并没有先自己去解决而是直接复制错误信息到百度搜索框。

搜索结果果然不会让人失望,马上出现满满一页匹配度十分高的结果。点了好几个结果进去,按照给出的方法去试,但都没有成功。反观看过的几个博客都没有对问题有个简单的分析解释,便直接给出几条建议,其中最多的就是以下一些:

  1. Invalidate Caches/Restart 清除缓存并重启 idea
  2. 右键 --> maven -->reimport
  3. 重启电脑
  4. 检查porm文件依赖关系是否正确

首先我需要声明第四种的思路是正确的,但不合适的地方在于,遇到这种问题的一般都是新手,直接写一个检查porm文件内配置的依赖关系是否正确,是很笼统的。一般这一条方法大都会略过不看,再去找别的解决方法了。所以说这一条方法对新手的帮助是不大的。

我这里说一下我的解决的办法,这个问题解决完回头一看其实是十分简单的。首先错误的提示信息:不能解析springbootapplication符号关键字。再没有经验的程序员也应该有意识,是这个关键字没有被成功识别,关键字不能识别的原因无非就是支持包找不到或者支持包有别的问题。而springBoot项目里面用的maven通过porm文件来管理支持包,那么此时直接就可以把问题的方向定位到porm文件。

idea新建的springBoot项目,自动生成的入口类中提示错误Cannot resolve symbol '@springbootapplication'

到porm文件里会发现有很多依赖关系,这可能会让新手感到头晕。但是idea一般会有良好的错误提示机制,哪个依赖有问题它都会给你标注出来。所以你硬着头皮也要往下看,如果你发现有被标红的jar包名,那么很明显idea是在提示你这个jar包有问题。标红就是说找不到这个jar包,原因无非名字写错或者maven仓库内没有这个jar包。这里是自动生成的名字那原因一定就是maven本地仓库内没有这jar,只需要maven install一下把jar包下载下来即可。

点击install maven会从服务器下载缺少的jar包到本地仓库,这个过程要保证网络可用。(具体的maven以及maven镜像库设置请百度maven配置这里不做讲述了)下载完成后重新导入一下jar包,maven --> reimport 一般问题就可以解决。

idea新建的springBoot项目,自动生成的入口类中提示错误Cannot resolve symbol '@springbootapplication'

如果说当你在porm文件里面就没有发现依赖包有问题,porm文件一切正常,那就是缓存在作怪。你可以试着清一下缓存(Invalidate Caches/Restart 清除缓存并重启 idea),或者你可以直接试着maven install一下,看是否maven install可以打包成功,只要maven打包成功那就说明jar包没有问题,那么上面不能解析关键字的错误提示也一定会消失。

其实单看这个错误,完全没有必要讲这么麻烦,但是我想说的不只是这个错误,而是我们在解决问题的过程中需要十分注意的地方,也是我自己需要注意的地方:百度搜索一定是要由我们的思维引导着来的。一定不能把错误信息抛给百度就想着百度可以给你提供一个完美的解决方法,错误的点一定要去自己思考自己定位。不加思考翻很多博客即使最后问题解决了,那同样也是浪费了很多时间。

还有一点期望,那就是写博客的人,一定要想好是为什么要花时间写这些博客,既然写出来自己解决问题的过程和方法,那就应该是给后来人看的,是为了对后来人有帮助的,这样写的博客才能有意义。若是只有自己能懂,那博客的价值真的会大打折扣。还有都不管别人博客的质量直接就复制粘贴发表在自己博客里的,也真的没有太多价值。

这里附上一篇自己看过后才耐心去看porm文件查找问题的博客,https://blog.****.net/lesaqiu/article/details/54846960