■ 本文是以springboot项目开发中遇到的问题为例:
学习springboot 视频的时候,我选的一个视频时叩丁狼的蓝老师的视频,理由:老师的声音非常温柔,nice~
视频的拍摄时间是2017年的,那年流行的(视频老师的springboot版本) 是版本1.5.7.RELEASE,而现在,是2022年,springboot都出版本3了,
但是我又喜欢听老师的声音,于是我自个使用的是版本2.6.5的,然后问题来了:
(1)需求1:springboot 整合 德鲁伊连接池【没问题】:
(2)需求2:springboot 整合 mybatis【 问题来了
】:
■ 报错信息:
java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class org.mybatis.spring.annotation.MapperScan.factoryBean() ......
■ 解决方案: 无解
,内网、外网,把能搜的地方全搜了,只找到两个说法。
说法1:把mybatis-spring集成的 jar包导入
问题便解决,~but,我明明一大早就导入了。
说法2: 版本问题
,emmm,于是,我就在maven仓库试了两三个最新版本之后,网搜,看到一个版本就试试,结果,快emo了,还是报同一个错误。
(1)首先排除自己的代码出错的情况:
我决定,减低springboot项目的版本跟视频一致,为1.5.7.RELEASE,同时更改Druid和mybatis-springboot集成的版本,同一保持跟视频一致。其中Druid的版本为:1.1.4;而mybatis-spring的版本为:1.3.0。
验证:成功通过,证明代码是没有问题的
当idea中maven项目报错的时候,看一眼idea底部是不是有进度条,进度条的状态是正在下载。有下载的进度条,解决错误的方式就是等待。没有则需手动搜索解决bug。
★ 可能刚建立完springboot 项目,maven会爆红;
★ 可能在pom文件中导入新的依赖时,maven会爆红;
★ 可能是在pom文件中更改整个springboot的版本时,maven会爆红;
✿ 解决:先看看底部有无下载进度条,有着等进度条下载完成即可,没有则尝试刷新一下maven项目。
//报druid的错误: java.lang.IllegalStateException: Failed to introspect Class [com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure] from ClassLoader Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProvider
■ 解决:更换druid 版本:
尝试更换德鲁伊版本为最新版本-1.2.8
结果:问题解决了哈哈哈
小建议:时间比较赶,看项目视频学习完,需要立马去赶项目,建议:视频版本挑比较新的,然后版本跟视频一致即可。
小心得:关于版本问题的解决思路: 依赖的版本的替换
、 项目的版本也可替换
■ 这个版本问题产生情况:
依赖之间的版本冲突、项目和依赖之间的版本冲突。
■ 关键:如何解决版本问题:
前提是先验证自己的代码没有问题(上文提供了一种验证方法)
看报错信息:控制台的报错(控制台没有报错信息,找找日志文件),去搜解决方案
idea中快速打开日志文件:
我常搜解决方案的地方:
① 直接百度搜;② csdn( 看一两个即可
,基本解决方案都擂台,不用再浪费时间了) ③ 博客园 ④ 知乎
④ 外网-Stack Overflow(这个网站非常nice~,国外最大的问答平台)
搜索之后的解决方案,没能解决,此时---需要冷静下来,自己一步一步分析:
报错之前,干了什么----思路是倒序着去排除错误,最后干的嫌疑最大,从后往前排除
是通过减低版本和视频老师一致的时候,在排除代码本身问题之后,把版本替换为原先自己想要的版本,通过控制台的报错提示,成功解决了问题哈哈哈。
本次项目真实bug来自项目版本
】我验证完成之后,我需要替换项目为原来版本的时候,版本是2.6.5, 我懒得复制粘贴,手打输入成2.5.6,然后通过控制台的提示,就成功解决了,
替换成2.6.5版本,就又可以让人emo啦!
■ 倒序排错思路:
① 首先验证排除掉是自己的代码本身的问题,让问题锁定到pom文件中的依赖上
② 我的需求是springboot 整合 德鲁伊连接池、整合mybatis,在pom.xml 最后引入的依赖是mybatis-springboot,运行报错,网搜解决方案---提示引入mybatis-springboot的依赖和该依赖的版本【 非该问题,问题依旧存在
】
③ 倒序---springboot 整合 德鲁伊连接池,自己引入的依赖中含有版本的是Druid,更换Druid版本
★ 建议更换依赖的版本的参考标准:
maven 显示的 Compile Dependencies 和 Provided Dependencies
,版本之间的参考;
因为是springboot 项目,考虑一下 springboot官网
给的依赖之间参考
若是前面都无法提供参考,建议从 maven提供的最新依赖
开始尝试更换
文章浏览阅读358次,点赞8次,收藏8次。如果表达式所计算的值非零,则 CBool函数返回 True;否则返回 False。下面的示例使用 CBool函数将一个表达式转成 Boolean类型。Check = CBool(A = B) 'Check设为 True。Check = CBool(A) 'Check设为 False。B =1 ' 初始化变量。A = 0 '定义变量。
文章浏览阅读1.9k次。打开my-application.log日志文件,寻找报错信息,如下:[1] bootstrap checks failed[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured看提示._elasticsearch my-application-2023-03-26-1.log.gz
文章浏览阅读712次,点赞19次,收藏30次。为了便于更好地理解,我们将整个方案分为 2 个部分进行介绍。一期方案:主要介绍在 Java 大对象通过 LargeObjectSpace 的内存申请和释放过程中,如何在内存申请和释放过程对其进行改造,以脱离虚拟机对这些对象的内存管理,最后实现 LargeObjectSpace 占用的内存完全脱离虚拟机内存统计。二期方案:针对一期方案需要在应用运行过程中提前开启,但是线上 99%以上运行过程中可能不会发生 OOM,因此一期方案对系统的侵入有点高。
文章浏览阅读48次。atitit.解决net.sf.json.JSONExceptionThereisacycleinthehierarchy1.环境:使用hibernate4跟个,,要不个哪的对象系列化成个json的时候儿有这个问题了... 12.原因::hb默认的lazy方式造成的当有关联对象的时候儿... 13.#---解决::lazy=fal...
文章浏览阅读3.4k次,点赞3次,收藏4次。高速主频240MHZ,对比STM32F1的72MHZ和STM32F4的168MHZ,速度快很多,而且价格上比起一直在涨价的STM系低出非常多;总的来说,STM32在国内的使用程度和受众程度是远大于ESP32的,毕竟STM32已经占据主流市场很久了,学习的资料比起ESP32起来会多,再加上一些开源问题,使用32的人群还是占据多数。2016年,乐鑫推出了ESP32,它是ESP8266的升级版本,速度更快还带有蓝牙4.2和蓝牙低功耗,价格在20元左右,在这个价格下几乎找不到对手可以“一战”。_esp8266为什么不建议使用
文章浏览阅读990次。Linux系统可以挂载多个不同接口类型的磁盘(disk),每一个磁盘又可以分成若干个分区(Partition),每个分区又可以拥有自己的文件系统类型(FileSystem)。Linux对于磁盘和分区又自己的一套标记方法。硬盘和分区的区分第一个SCSI(Small Computer System Interface)磁盘记为/dev/sda,第二个SCSI磁盘记为/dev/sdb;第一个SATA磁盘..._linux引导分区的标记可为
文章浏览阅读4.3k次,点赞3次,收藏6次。查看本章节查看作业目录需求说明:使用 JavaScript 中的 Date 对象,在页面上显示一个万年历。选择不同的年份和月份,在页面中显示当前月的日历实现思路:在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份和月份,显示到 <select> 标签上根据 <select> 标签上显_javascript select填充月份
文章浏览阅读2.4k次。题目1174:查找第K小数时间限制:1 秒内存限制:32 兆特殊判题:否提交:5161解决:2081题目描述:查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数为3。输入:输入有多组数据。每组输入n,然后输入n个整数(1输出:输出第k小的整数_oj 第k小整数 c++
文章浏览阅读814次,点赞3次,收藏4次。我们接触到的电感器是各种各样的:有绕着圈圈的,有贴片的(0805/0603/0402/0201),还有一些是四四方方的。那么这些电感有什么差别呢?本章我们来一起看贴片电感器和磁珠,我们大多只知道磁珠是耗能元件而电感是储能元件,从原理上为什么会是这样的效果呢?它们在结构上有差别么?ps:“暗物质”看不见摸不着,据说每秒钟有几吨的暗物质穿过我们的身体,那我们是怎么知道暗物质这玩意存在的呢?_亨特h
文章浏览阅读259次。由于微信的限制,应用文件在内置浏览器中下载全部被屏蔽掉,造成很多人用微信扫描二维码下载时,界面显示一片空白,容易误导以为在下载呢。按照当前主流习惯,做一个提示用户在浏览器中打开下载的遮罩。网上很多现成的例子,解释的也很详细,但感觉没有直接上手可用的例子,因此,我打算写个示例。<!DOCTYPE html><html><head><met..._微信扫码下载apk遮罩提示
文章浏览阅读4.5k次,点赞7次,收藏10次。通过上述方法,您不仅可以解决因Docker日志文件导致的C盘空间爆满问题,还可以应用这一技巧,管理系统中的任何其他大文件或文件夹。保持C盘的清爽,让您的Windows系统运行更加流畅!_appdata\local\docker\log\host
文章浏览阅读54次。首先想到的是 js插件 ajaxSubmitForm1. http://www.cnblogs.com/DylanZ/p/6019611.html 1 function ajaxSubmitForm() { 2 var option = { 3 url : '${pageContext.request.contextPath}/userCo..._clientcallmode