开心一刻 昨晚跟我妈语音 妈:我年纪有点大了,想抱孩子了 我:妈,我都多大了,你还想抱我? 妈:我想抱小孩,谁乐意抱你呀! 我:刚好小区有人想找月嫂,要不我帮你联系下? 妈:你给我滚 然后她直接把语音给挂了前情回顾 还记得记一次Druid超时配置的问题→引发对Druid时间配置项的探究遗留的问题吗? 如果同时设置 DataSource 的 queryTimeout 和 JdbcTemplate 的 queryTimeout ,那么哪个 queryTimeout 生效?实践出结果 想快速知道答案,做法很简单,两个都设置,看生效的是哪个 示例代码:druid-timeout
Mybatis-plus分页查询不生效之问题排查一、问题描述二、分析步骤三、解决方案四、总结一、问题描述在查询的时候,发现点击后台的分页器数字,第2页时候,数据还是和第1页的一致。就看后台的数据库打印语句,如下所示。点击第一页和第二页都是这个,limit后的参数只有一个,前期做过类似,点击第二页分页的时候,语句是LIMIT?,?ONap.id=a.project_idORDERBYa.create_timeDESCLIMIT?二、分析步骤首先开始怀疑的是自己的分页对象出现了问题,因为MySQLORM框架使用了JPA框架遗留的代码。将spring-data的分页对象org.springframe
Mybatis-plus分页查询不生效之问题排查一、问题描述二、分析步骤三、解决方案四、总结一、问题描述在查询的时候,发现点击后台的分页器数字,第2页时候,数据还是和第1页的一致。就看后台的数据库打印语句,如下所示。点击第一页和第二页都是这个,limit后的参数只有一个,前期做过类似,点击第二页分页的时候,语句是LIMIT?,?ONap.id=a.project_idORDERBYa.create_timeDESCLIMIT?二、分析步骤首先开始怀疑的是自己的分页对象出现了问题,因为MySQLORM框架使用了JPA框架遗留的代码。将spring-data的分页对象org.springframe
作者:京东物流王北永姚再毅李振1背景目前,ducc实现了实时近乎所有配置动态生效的场景,但是配置是否实时生效,不能直观展示每个机器上jvm内对象对应的参数是否已变更为准确的值,大部分时候需要查看日志确认是否生效。2技术依赖1)Jsf:京东RPC框架,用作机器之间的通讯工具2)redis/redisson:redis,用作配置信息的存储3)ZK/Curator:Zookeeper,用作配置信息的存储和redis二选一3)clover:定时任务集群,用作任务延迟或周期性执行3实现原理1)接入方:各个接入系统通过接入管理模块获取token,并指定所在系统发布的的服务器ip,用作后续的ip鉴权。当系统
作者:京东物流王北永姚再毅李振1背景目前,ducc实现了实时近乎所有配置动态生效的场景,但是配置是否实时生效,不能直观展示每个机器上jvm内对象对应的参数是否已变更为准确的值,大部分时候需要查看日志确认是否生效。2技术依赖1)Jsf:京东RPC框架,用作机器之间的通讯工具2)redis/redisson:redis,用作配置信息的存储3)ZK/Curator:Zookeeper,用作配置信息的存储和redis二选一3)clover:定时任务集群,用作任务延迟或周期性执行3实现原理1)接入方:各个接入系统通过接入管理模块获取token,并指定所在系统发布的的服务器ip,用作后续的ip鉴权。当系统
@Transactional属于是Spring的常用事务处理注解了,最近在开发时偶然发现这个东西竟然不是100%生效的。问题重现:测试一个批处理方法,方法上加了@Transactional后执行,因为加了事务处理注解,没怎么关注SQL执行顺序(反正对事务来说都是原子性的),debug过程发现MongoDB连接有问题,有关Mongo的操作抛出了异常,因为数据库的某个字段是批处理的触发条件,并且在批处理过程中会更新这个字段。重新执行发现数据库(Postgresql)的数据被update了,没有触发。嗯,确实之前没关注这个注解会有不生效的问题,开始处理:首先为了方便测试批处理任务(定时调度的),我在
@Transactional属于是Spring的常用事务处理注解了,最近在开发时偶然发现这个东西竟然不是100%生效的。问题重现:测试一个批处理方法,方法上加了@Transactional后执行,因为加了事务处理注解,没怎么关注SQL执行顺序(反正对事务来说都是原子性的),debug过程发现MongoDB连接有问题,有关Mongo的操作抛出了异常,因为数据库的某个字段是批处理的触发条件,并且在批处理过程中会更新这个字段。重新执行发现数据库(Postgresql)的数据被update了,没有触发。嗯,确实之前没关注这个注解会有不生效的问题,开始处理:首先为了方便测试批处理任务(定时调度的),我在
昨天我在写微信小程序的聊天界面遇到的问题当我进入页面的时候我需要把我的聊天记录定位到我的存储聊天记录框的最底下所以我需要给我的scroll-top传入一个动态的数值让他初始化的时候,发送信息的时候,接收消息的时候都要在最底下然而这个时候出现了问题:我的html{height-50}}px;"scroll-yscroll-top="{{scrollTop}}">我的js//生命周期函数liaotianjilu是我存聊天记录的数组onLoad(options){this.setData({scrollTop:this.data.liaotianjilu.length*1000,height:wx.
昨天我在写微信小程序的聊天界面遇到的问题当我进入页面的时候我需要把我的聊天记录定位到我的存储聊天记录框的最底下所以我需要给我的scroll-top传入一个动态的数值让他初始化的时候,发送信息的时候,接收消息的时候都要在最底下然而这个时候出现了问题:我的html{height-50}}px;"scroll-yscroll-top="{{scrollTop}}">我的js//生命周期函数liaotianjilu是我存聊天记录的数组onLoad(options){this.setData({scrollTop:this.data.liaotianjilu.length*1000,height:wx.
看了其他大佬的文章记录一下自己追源码的过程。Apollo配置中心动态生效机制,是基于Http长轮询请求和Spring扩展机制实现的,在Spring容器启动过程中,Apollo通过自定义的BeanPostProcessor和BeanFactoryPostProcessor將参数中包含${…}占位符和@Value注解的Bean注册到Apollo框架中定义的注册表中。然后通过Http长轮询不断的去获取服务端的配置信息,一旦配置发生变化,Apollo会根据变化的配置的Key找到对应的Bean,然后修改Bean的属性,从而实现了配置动态生效的特性。需要注意的是,Apollo在配置变化后,只能修改Bean