alibaba druid 在springboot start autoconfig 下的bug

  • 时间:
  • 浏览:2
  • 来源:uu快3网站_uu快3充值_玩法

第一反应肯定是配置错了,检查配置。

亲戚大伙儿 使用的java开发框架是封装好的。框架对数据源的支持是master、slave架构的,而是可不还可不可以 一组多从数据源,外部会自动进行主从写入、查询切换。

亲戚大伙儿 使用springboot框架,datasource config 基于springboot properties进行配置。假如使用configuration 进行自动druid daasource bean的创建。这看起来好像没那些问题报告 。

好像没错啊,假如在debug下,问题报告 同样总出 。minEvictableIdleTimeMillis属性和maxEvictableIdleTimeMillis属性的前后顺序好像也没问题报告 。试试看的心里,将有有一个 多属性前后顺序交换下,问题报告 还是总出 。

导致 全是springboot,一般前会 本人来初始化所有的属性。从配置文件加载配置,假如手动设置DruidDataSource bean。

二:假如本人先设置一下这有有一个 多属性,springboot autoconfig 的过后就不要再出错

发现问题报告 了,在进行setMaxEvictableIdleTimeMillis措施的过后,minEvictableIdleTimeMillis属性的值是160 0000。

离米 意思是说,'maxEvictableIdleTimeMillis'最大存活时间需要大于'minEvictableIdleTimeMillis'最小存活时间。

有有一个 劲能明白,虽然有关于开源的好处,你导致 获益了。可不还可不可以 同去参与使用,同去参与发现问题报告 ,同去参与fixbug。这你说歌词 而是linux、git例如于于优秀艺术品头上的核心技术价值观。

通过debug,发现直接new DruidDataSource()使用数据源,不要再走到init措施。不要再进入到触发报错的地方。貌似我的代码路径应该不要再产生你这人 检查。继续运行,看setMaxEvictableIdleTimeMillis措施那些情况汇报。

问题报告 到这里分析就过后开始 了。你这人 小bug,alibaba druid 导致 fix。

导致 你对咋样fix感兴趣,请参看druid 有关于autoconfiger修复的代码:

https://github.com/lihengming/druid/commit/ca13e8ff5a78c83f953fa8fb320c56be223219e1

全局查找的过后有两处有你这人 exception的throw。

一: init 措施

minEvictableIdleTimeMillis 属性有有一个 多多default值。单位是ms(millisecond),什么都有有有这里的default 值是60 m(minute)分钟。

没多想,就直接用你这人 措施使用了。假如在启动的过后,初始化bean的过后就报错了。

什么都有有有直接在这有有一个 多地方打上断点,假如debug,在跟踪下变量的值基本就知道问题报告 在哪里了。

github 地址:https://github.com/Plen-wang

感觉你这人 问题报告 很重诡异了,时间要紧,直接找到报错的地方,进行源码跟踪。

上 github search alibaba druid 首页,直接gith clone下来,定位到错误提示的位置。

这有有一个 多措施逻辑都比较简单,init初始化的过后会检查这有有一个 多bean属性的值。setMaxEvictableIdleTimeMillis,设置你这人 最大存活时间的过后有有一个 多多检查。导致 你的最大存活时间小于最小存活时间直接报错。

二:setMaxEvictableIdleTimeMillis 措施

'maxEvictableIdleTimeMillis' threw exception; nested exception is java.lang.IllegalArgumentException: maxEvictableIdleTimeMillis must be grater than minEvictableIdleTimeMillis

标签(空格分隔):druid springboot start autoconfig

亲戚大伙儿 现在居于.net专java过程中,特殊场景下新java系统需要连接有有一个 多数据源,默认连接mysql数据源,假如假如还需要查询sqlserver数据源来获取一些兼容性数据。

什么都有有有,在配置第有一个 数据源的过后,系统load就报错。

蒙蔽情况汇报~_~。

看下你这人 值哪里来的。

最近在使用alibaba druid进行多数据源连接的过后无意中发现有有一个 多小bug,导致 提交github issue 官方导致 fix。issue 地址:https://github.com/alibaba/druid/issues/1796

假如继续debug,先绕过你这人 检查,看是全是setMinEvictableIdleTimeMillis 措施在setMaxEvictableIdleTimeMillis 措施过后执行,导致 你这人 检查和配置顺序冲突。

debug下来,虽然是你这人 问题报告 。假如就比较好奇,亲戚大伙儿 现在所使用的你这人 框架帮亲戚大伙儿 封装了druid的过后是为什么在除理的,通过查看框架源码,里边有有一个 多多hashcode的排序,除理了你这人 问题报告 。(甜得老司机,高手)这里就不展开了。

可不还可不可以 并能 亲戚大伙儿 导致 除理你这人 问题报告 ,虽然很简单,知道问题报告 在哪里绕过去还是很简单的。

一:先把配置的minEvictableIdleTimeMillis、maxEvictableIdleTimeMillis获取进来

为了便于阅读,我删掉了init中对亲戚大伙儿 分析问题报告 来说无用的代码。

亲戚大伙儿 配置的是60 0000ms,什么都有有有比160 0000小。假如你这人 就奇怪了,亲戚大伙儿 明明设置了minEvictableIdleTimeMillis 参数。为那些没起作用,一下子就想到是全是顺序问题报告 。

猜你喜欢

为什么人就是贱,你长期对ta好,ta就自动觉得这是理所当然了!你一旦有一次不对ta好了,ta好了

我着实,你是什么所以不懂的感恩的人,不懂得别人为你做哪些地方都在的是时要的,别人帮了你,对你好,你时要抱着感恩去接受,没有 理所应当的着实是你傻展开完整性扫描二维码下载展开

2020-02-17

Docker学习之搭建MySql容器服务

命令说明:获取镜像:查找镜像:时候您只想设置必需的环境变量而不将数据库存储在主机目录中,请执行以下命令:分享是快乐的,也见证了当事人成长历程,文章大多全部都是工作经验总结以及平

2020-02-17

上班的男同事,人品不怎么好,我开始不知道的时候和他说话多,现在突然不理他了,然后人多的时候他就故意

你对你这人回答的评价是?很糙推荐 我来答使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。可选中有另一个多或多个下面的关键词,搜索相关资料。也可直接点“

2020-02-17

Nginx 防盗链设置

比较明显的是图片资源,自己的服务器不存储图片资源,而使用别人的图片资源,另一好几个 多不要承担图片的存储跟流量所产生的费用。总之,是非常无耻的行径。有了valid_r

2020-02-17

上课玩手机给班主任抓到 老师要求写1000字检讨书还要在班里面读出来 !!!我该怎么办啊 如何向老师求情

展开完整篇 亲爱的班Sir,敬爱的同学们:对不起,我犯了严重的错误,我对不起国家,对不起党,对不起人民,对不起生我养我的父母。昨天,我迟到了,将会我长得太帅了,为了不引起您的

2020-02-16