thumbnail
Kotlin 单例模式详解
单例模式很熟悉了,在Java中有各种创建姿势,算是比较麻烦的,这里就不再赘述了。 Object 那么如何在kotlin中实现单例模式呢?请看代码 object JsonObjectMapper { } 仅需简单的把class关键字替换为object就完成了! // Kotlin 调用 JsonObjectMapper // Java调用 JsonO…
Quartz失火指令、补偿执行机制配置
处理规则 调度(scheduleJob)或恢复调度(resumeTrigger,resumeJob)后不同的misfire对应的处理规则如下: CronTrigger withMisfireHandlingInstructionDoNothing不触发立即执行等待下次Cron触发频率到达时刻开始按照Cron频率依次执行withMisfireHand…
解决HttpServletRequest.inputStream复用问题
众所周知,request对象中的inputStream只能读取一次,下次再读就没有了,在一些场景中,这种特性是不适用的:比如需要在拦截器中读取请求体,然后做相关的参数校验,做完校验后请求打到Controller中就读取不到了。 解决的方法很简单,通过HttpServletRequestWrapper将HttpServletRequest对象包装一下…
MockMvc WebFilter不生效问题解决
在SpringBoot项目中,配置了一个@WebFilter,正常启动没问题,但是通过MockMvc进行单元测试死活不生效 @Configuration @Order(1) @WebFilter(urlPatterns = ["/**"]) class HttpServletRequestWrapperFilter : Filter { o…
thumbnail
UI.Vision Kantu-基于Selenium的浏览器自动化工具
之前简单介绍过Selenium框架在Java中的简单应用,用来做基于webDriver的自动化测试非常方便。但是通过硬编码的方式虽然简单,但是也还是要写不少的代码的,今天发现了一款基于Selenium的浏览器自动化插件,支持录制和回放,完全可以将网页中的一些重复的操作录制下来,解放双手。 下载地址 https://chrome.google.com…
thumbnail
MySQL7新特性之JSON数据类型
从MySQL 5.7.8开始,原生提供了一个JSON类型的数据格式,在此之前类似的需求都是需要通过VARCHAR的方式来存储处理的。 JSON数据类型,拥有自动校验格式功能;提供操作JSON数据的内置函数;优化的存储格式,存储在JSON列中的JSON数据被转换成内部的存储格式,允许快速读取;支持修改JSON对象的特定属性,而不需要更新整个JSON内…
thumbnail
Canal数据同步中间件初探
MySQL本身是支持主从模式(Master/Slave)的,Master产生的日志(binary log)中记录了所有增删改语句,将日志发送到Slave执行即可完成数据库的增量数据同步操作。 Canal是阿里巴巴开源的一个中间件,他的作用就是解析binary log来完成数据同步的。源码地址:https://github.com/alibaba/c…
thumbnail
使用Serverless + TravisCI 持续构建Hexo
之前使用过Netlify持续构建我的Hexo博客,比较方便,但是访问速度太慢了,不敢恭维所以考虑迁移到Coding Pages上面来,但是本地构建Nodejs环境还是比较麻烦,需要装一堆东西,这次又研究了一个比较好的方案,大致流程如下: 在语雀上编写文章  配置语雀仓库的Webhook通知,当更新文章时通知给Serverless  使用腾讯云提供的…
thumbnail
SpringBoot与Vue前后端分离最佳实践
前后端分离的开发模式大家都很清楚了,甚是麻烦: 前端启动webpack-dev-server后端启动接口服务开启代理服务器,前端通过代理服务器请求后端接口(解决跨域问题) 但是这些东西对于后端来说,太麻烦了,直接把前端打包好的dist文件丢到后端静态服务器里面就好了。至于前端的webpack-dev-server热部署特性,改完前端代码立即在浏览器…
thumbnail
Kotlin杀手级特性-空安全
Kotlin相对于Java来说,有一个显著的特点,就是它致力于消除空引用所带来的危险,在Java中,为了避免NullPointerException的出现,我们需要不厌其烦的使用if (value != null) {} 来处理这种问题(虽然在JDK8之后有了更好的方式) 在Kotlin中很好解决了这个问题,下面来看看它是如何做到的。 数…