maven版本号插件
莫等闲,白了少年头,空悲切——岳飞 我们maven项目除了使用这种方式修改版本号,还有一种统一管理版本号的方式: 项目地址:https://github.com/mojohaus/flatten-maven-plugin 官方文档:http://www.mojohaus.org/flatten-maven-plugin/ 引入: 12345678910111213141516171819<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <!--<version>INSERT LATEST VERSION HERE</version>--> <executions> <execution> ...
canvas视频截帧
礼貌是儿童和青年都应该特别小心地养成习惯的第一件大事——约翰·洛克 先放代码: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136<script> /** * * @param src string 视频url * @param currentTime double 视频截取位置,单位秒 * @return 截取图片的 base64 */ ...
h2下update set字段重复处理拦截器
慷慨是友谊的精华——王尔德 今天发现Mybatis-Plus在h2下,同时使用UpdateWrapper和entity会出现 update 表名 set 字段1=xxx,字段1=xxx 这样的sql,在mysql下是正确的语法,h2会抛出异常 所以写了个mybatis拦截器,放在了streampark里: pr地址:https://github.com/streamxhub/streampark/pull/1493 源码: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128/* * ...
blob和base64互转
交易场上的朋友胜过柜子里的钱款——托·富勒 blob转base64 1234567891011121314151617// blob转base64async function blobToBase64(blob) { let buffer = await blob.arrayBuffer() let bytes = new Uint8Array(buffer); console.log(bytes) // do anything with the byte array here let binary = '' var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode(bytes[i]); } base64 = 'data:image/webp;base64,' + window.btoa(binary) co...
资源路径与blobUrl互转
害怕树敌的人永远得不到真正的朋友——哈兹里特 首先是普通资源URL转换为blobUrl 12345678910111213// 生成blobURLconst xhr = new XMLHttpRequest();xhr.open('GET', 'https://VampireAchao.github.io/imgs/preview/3356_3.jpg', true);xhr.responseType = 'blob';xhr.onload = function (e) { if (this.status == 200) { var blob = this.response; console.log(blob); // document.getElementById("myImg").src = URL.createObjectURL(blob); console.log(URL.createObjectURL(bl...
get请求包含参数属性为数组
凡是夫妇不吵架的家庭,准是一块阴森之地,既没有冲击,故也没有快乐——柏杨 有些时候,我们需要使用GET请求传递数组,但是使用很多前端请求框架,以及EcmaScript自带的URLSearchParams转换的URL参数都无法直接进行转换: 例如以下格式: 1234567891011121314{ "current": 1, "size": 1, "orders": [ { "column": "age", "asc": true }, { "column": "name", "asc": true } ]} 使用URLSearchParams转换结果: 1234let se...
xnio坑
恶名不治,恶伤可治——佚名 今天拉取StreamPark发现其引用了xnio 并且项目运行时抛出了nvalid file path的异常提示 发现源码部分: 其去寻找了NUL:这个路径 1new FileOutputStream("NUL:") 解决方式: 启动参数带上-Djdk.io.File.enableADS=true: 1-Djdk.io.File.enableADS=true -Dapp.home=streamx-console/streamx-console-service/target/streamx-console-service-1.2.4 如果没有这一栏,可以在右侧蓝字Modify options开启
kotlin延迟属性
得饶人处且饶人——曹雪芹 kotlin习惯用法见:https://www.kotlincn.net/docs/reference/idioms.html 这里试试延迟属性: https://www.kotlincn.net/docs/reference/delegated-properties.html#%E5%BB%B6%E8%BF%9F%E5%B1%9E%E6%80%A7-lazy 1234567val lazyValue: String by lazy { println("computed!") "Hello"}println(lazyValue)println(lazyValue) 运行结果: 123computed!HelloHello
kotlin字符串模板
超乎一切之上的一件事,就是保持青春朝气。——莎士比亚 中文文档:https://www.kotlincn.net/docs/reference/basic-syntax.html#using-string-templates 1234567var a = 1// 模板中的简单名称:val s1 = "a is $a" a = 2// 模板中的任意表达式:val s2 = "${s1.replace("is", "was")}, but now is $a" 得到s2结果: a was 1, but now is 2 如果我们需要使用$符号,则可以参考: https://www.kotlincn.net/docs/reference/basic-types.html#%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%A8%A1%E6%9D%BF 使用${'$'} 例如下面的多行文本: 123val price = """...
聊聊lambda
不速之客只在告辞以后才最受欢迎——莎士比亚 公众号链接:https://mp.weixin.qq.com/s/MFXRBr16LuGn6G2rlOFFEw 简介今天主要聊聊java中的lambda 距离我加入hutool-commiter已经有一段时间了,想起曾经封装过的一个类Opt,就是使用lambda,按照惯例,先介绍下dromara组织下的项目hutool Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 这个类Opt的灵感来源是对jdk内置的java.util.Optional的拓展,在一些细节方面进了了简化处理 下面主要是通过其介绍lambda的使用 快速上手依靠idea编译器的提示进行快速上手 下方是判断user是否为空,不为空通过User#getSchool()获取学校名的操作 例如此处我写到这里 1234User user = new User();// idea提示下方参数,如果没显示,光标放到括号里按ctrl+p主动呼出 ...
