
java
文章平均质量分 69
DCTANT
Geek,一线开发Java后端程序猿、电脑硬件发烧友、业余摄影师、车迷、自然科学学者、提倡学以致用
展开
-
【原创】如何在Maven package时执行自己的代码,比如下载文件等
目前有个项目需要一个类似于AI相关的巨大分词包,这个文件不能通过git提交,因为公司git服务器限制了文件大小,且这个文件有人在维护更新,只能通过在打包的时候实时下载,就有了这个maven package时需要下载文件的需求,打包的时候需要将这个分词包放进最终打完的包中。原创 2024-08-15 14:30:34 · 481 阅读 · 0 评论 -
【原创】分析JDK17加载Sybase驱动出现递归调用的原因并解决其加载问题
最近好久没发文章了,原因是AI太强了,随便问一句答案就有了,节约了很多折腾的时间,也就没法作为原创文章发布了,还有就是很多涉及公司内部的代码,没法公开发布。这次遇到了一个项目,用的数据库是Sybase,需要使用jdbc进行连接然后查询其中的数据。这个项目以前在jdk8的环境运行是正常的,但是到了jdk17,加载驱动就出现问题了,这篇文章就来分析并解决这个问题。原创 2024-08-01 14:10:34 · 818 阅读 · 0 评论 -
【原创】提升MybatisPlus分页便捷性,制作一个属于自己的分页插件,让代码更加优雅
我的目标就是要让本就优雅的MP更加优雅,分页功能更加优美的使用。原创 2023-12-05 22:43:53 · 1694 阅读 · 0 评论 -
【原创】为MybatisPlus增加一个逻辑删除插件,让XML中的SQL也能自动增加逻辑删除功能
解决MybatisPlus的xml没有自动添加逻辑删除字段的痛点,自定义MybatisPlus插件的典型案例。原创 2023-11-20 18:38:48 · 2237 阅读 · 9 评论 -
【原创】Kotlin使用Lambda形式的QueryWrapper进行查询,解决SpringBoot中Kotlin无法使用LambdaQueryWrapper执行查询的问题
众所周知,Kotlin无法使用LambdaQueryWrapper进行查询,会无法找到相关Lambda表达式的方法,导致报错,这就导致Kotlin因为这么一个小问题变得不香了,当然这个问题也很好解决。原创 2023-11-20 15:31:44 · 1262 阅读 · 0 评论 -
【原创】生成文件MD5图像,类似于GitHub的像素风格头像
通过Java代码实现和GitHub类似的头像效果,并且还能根据文件的md5生成这种像素图片。原创 2023-04-28 18:05:54 · 1900 阅读 · 1 评论 -
【报错记录】解决Clickhouse DateTime保存报错问题:Cannot parse string ‘XX‘ as DateTime: syntax error at position
java调用clickhouse,保存Date类型的数据,解决clickhouse报错问题:Cannot parse string 'XX' as DateTime: syntax error at position XX(parsed just 'XX'): while executing 'FUNCTION CAST(assumeNotNull(_dummy_0) :: 2, 'DateTime' :: 1)原创 2023-02-10 17:24:29 · 5098 阅读 · 0 评论 -
【报错记录】记录一个导致IDEA Maven编译控制台乱码的问题
解决一个之前网上从来没遇到的idea使用maven编译,idea的maven控制台出现的乱码问题,而且罪魁祸首居然是jdk18原创 2023-01-04 15:48:06 · 1397 阅读 · 1 评论 -
【原创】关于表结构更改的大量数据的迁移方案
关于大量数据(上亿条)修改表结构是个很麻烦的事,因为耗时实在太长了,我们可以使用另一种方式去修改表结构,也就是insert select方式,能够节省大量时间。原创 2022-11-28 19:56:46 · 2823 阅读 · 0 评论 -
【原创】获取MybatisPlus注入的mapper的真实类型
MybatisPlus中Autowired出来的mapper是代理出来的示例,getClass获取到的类型为代理类,而不是其真实的类,这会导致很多麻烦,我目前就着手解决了这个问题,从而优化了代码。原创 2022-11-01 18:45:49 · 1663 阅读 · 3 评论 -
【原创】MybatisPlus调用原生SQL的三种方法
这篇文章破天荒的介绍了三种使用MybatisPlus查询原生SQL的方法,可以说是全网独有的。原创 2022-09-29 19:11:05 · 35524 阅读 · 8 评论 -
【报错记录】MybatisPlus报Mapped Statements collection does not contain value for...
Mybatis-Plus报错:Error updating database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.sun.proxy.$Proxy129.insert但是这个insert方法是mapper中普遍有的方法,为什么会报错呢?原创 2022-08-22 16:30:32 · 4191 阅读 · 0 评论 -
【原创】POI 5.x XSSF和HSSF使用自定义字体颜色
POI设置字体和背景颜色的案例展示,说明其他博客中存在的问题,以及坑在什么位置,防止其他人也和我一样踩同样的坑原创 2022-06-07 11:30:00 · 11193 阅读 · 8 评论 -
【原创】Nacos从2.0.4更新到2.1.0
Nacos官方并没有给出nacos2.x的升级方法,我个人研究整理了一下更新方法,希望能给大家提供帮助原创 2022-06-06 14:52:02 · 6091 阅读 · 3 评论 -
【报错记录】解决无法找到EmbeddedServletContainerAutoConfiguration导致项目无法启动的问题
解决java.lang.IllegalArgumentException: Could not find class [org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration]这个问题,并给出一个方法解决这个共性问题,能给使用SpringBoot的同行们一些建议原创 2022-06-02 14:21:31 · 2025 阅读 · 0 评论 -
【原创】Java使用RestHighLevelClient操作ElasticSearch,实现多字段Group by并将结果进行count排序
调用ES的java api,让数据进行group by后再排序,非常实用原创 2022-05-23 10:39:14 · 2481 阅读 · 6 评论 -
【原创】解决SpringBoot在部署过程中出现大量jar包冲突的问题
遇到一大堆jar包冲突请不要绝望,看看这篇博客会给你灵感!原创 2022-04-27 23:14:27 · 5696 阅读 · 0 评论 -
【原创】SpringBoot实现月末功能
众所周知的事是Spring的cron表达式和Linux、Quartz的cron表达式是不同的,那么这个月末功能还能正常实现吗?原创 2022-04-26 22:48:56 · 1350 阅读 · 0 评论 -
【原创】JavaFx踩坑记录
前言该篇博客用于统计自己在JavaFx编写中踩到的坑,用于自己总结汇总,也为大家提供可靠的建议,避免和我踩同样的坑。该篇博客会不定期更新。ImageView引入图片路径正确却报错引入图片的基本格式:<ImageView fx:id="titleSelectionIv" fitHeight="${topTitleBp.prefHeight}" fitWidth="21" preserveRatio="true" pickOnBounds="true"> .原创 2022-03-20 23:37:46 · 2522 阅读 · 0 评论 -
【报错记录】SpringBoot中MultipartFile上传报/tmp/tomcat.***.tmp (No such file or directory)
前言我这个接口的需求大概是用户上传一个Excel文件到后端,后端解析这个Excel,并做一系列很耗时的操作。由于这个接口很耗时,因此做成了异步处理的方式,将处理完成的信息通过消息中心告诉用户,并不是立即接口返回。然而这个接口在我本地调试的时候都是好的,上线后就报错了。报错的内容大概是:/tmp/tomcat.**************.tmp (No such file or directory)解决过程很明显是文件找不到,我就去/tmp目录下找,还真的没找到这个文件,我还以为是/tmp目原创 2022-02-11 14:15:46 · 13565 阅读 · 6 评论 -
【原创】最简单的方式在Chrome中安装EsHead插件
我看到很多文章中介绍的都是先要安装node.js、grunt,然后再去编译EsHead,这也太麻烦了,我只想装一个浏览器插件,为什么要这么复杂,然后我去EsHead的作者的GitHub上看了一下,明明有现成的crx文件,我们根本没必要去自己编译这个插件。链接如下:https://github.com/mobz/elasticsearch-head/raw/master/crx/es-head.crx下载一下这个crx插件就到手了,完全不需要编译。然后介绍一下这个crx如何安装到Chrome中。1原创 2022-02-07 14:59:06 · 9081 阅读 · 1 评论 -
【原创】解决Maven ProGuard不混淆局部变量的问题,以及如何使用混淆好的包
前言我最近要打个jar包需要混淆代码,防止被他人破解,于是我找到了我自己以前写的博客,抄了一下xml代码,但是发现局部变量没有被混淆,网上找了好久没找到问题的答案,和我遇到同样问题的人倒是不少,好在最后我自己解决了。我之前讲述ProGuard的博客:IDEA 使用JDK1.8使用ProGuard混淆Maven项目代码_DCTANT的博客-优快云博客_idea 代码混淆这篇博客有个明显的问题:随大流,里面的配置文件有坑,而且我自己也不知道!修复局部变量无法混淆的问题直接上我现在的ProG原创 2022-01-21 11:52:43 · 2678 阅读 · 6 评论 -
【原创】辟谣,实测MyBatisPlus批量新增/更新方法确实有效,且可单独使用无需跟随IService
前言之前看网上说MyBatisPlus(后面简称MP)的批量新增、更新方法只是简单是for循环insert/update,性能毫无差别,我就觉得奇怪了,这么严重的问题作者就没有发现吗,难不成还得自己去写批量新增方法?这里批判以下两篇博客,简直误人子弟https://www.cnblogs.com/thinkYi/p/13723035.htmlhttps://blog.youkuaiyun.com/leisure_life/article/details/98976565还有就是这个批量新增方法仅仅只能原创 2021-12-27 23:59:59 · 11035 阅读 · 25 评论 -
【报错记录】解决SpringBoot使用knife4j无法引入@EnableSwagger2WebMvc
看了网上推荐尝试使用Knife4j这个swagger框架,按照1.6 快速开始 | knife4j配置后发现@EnableSwagger2WebMvc这个注解怎么都引入不了,Maven也没有出现报错信息然后去翻了Knife4j的issue,发现没人提过同样的问题,csdn上倒是有人提过提过同样的问题,但是没人回答springboot整合swagger2,@EnableSwagger2注解使用不了-Java-优快云问答我这回算是解决了,原因是我之前已经引入过了swagger2了,再...原创 2021-11-21 20:26:51 · 13189 阅读 · 9 评论 -
【原创】Java获取CPU占用率、内存占用率最简单的方式
先上代码,保证这是目前全网最简单的获取系统CPU占用率、内存占用率的方法 @Test public void testSystemUsage() { final long GB = 1024 * 1024 * 1024; while (true) { OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean();原创 2021-11-03 16:31:11 · 16773 阅读 · 21 评论 -
【原创】ElasticSearch使用Java代码group by多个字段查询统计数量
这篇文章主要介绍group by多个字段查询,这方面的资料在全网都非常少,而我这边的需求需要group by三个字段,而不是仅仅一个字段,大大增加了检索资料的难度,还好这问题被我解决了,多亏了公司里的老程序员。首先自然是在SpringBoot代码中引入ES查询的clientMaven依赖: <dependency> <groupId>org.elasticsearch.client</groupId> .原创 2021-09-30 15:36:03 · 5996 阅读 · 9 评论 -
【报错记录】ZooKeeper报java.net.SocketException: Socket is not connected无法连接上
由于我在学习ZooKeeper的阶段中,ZooKeeper都部署在虚拟机里了,心想着我就不配hosts了吧,反正虚拟机早晚要删掉。然后用java连接ZooKeeper就报错了,报:ava.net.SocketException: Socket is not connected at sun.nio.ch.Net.translateToSocketException(Net.java:123) at sun.nio.ch.Net.translateException(Net.java:157) a原创 2021-07-09 16:21:28 · 5266 阅读 · 4 评论 -
【原创】JPA中@PrePersist和@PreUpdate的用法
在项目里看到了@PrePersist和@PreUpdate,这两个注解是我以前从来没见过的,百度了半天只知道它是做什么的,但是不知道怎么用,还是得我自己试了才知道。参考链接(https://blog.youkuaiyun.com/sunrainamazing/article/details/75041402、https://blog.youkuaiyun.com/szyyyp/article/details/54311118)@PrePersist我通过打断点试了一下,发现其中@PrePersist的切点是在entit原创 2021-04-10 20:13:57 · 4693 阅读 · 2 评论 -
【随手记】Java将时间戳转为RFC3339标准时间格式
如题所示,将时间戳转为RFC3339标准时间格式,主要用于微信支付V3直接上代码: public static String timeStampToRfc3339(long timeStamp) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); String formatDate = simpleDateFormat.format(ne原创 2021-01-26 13:56:28 · 8216 阅读 · 6 评论 -
【原创】Java Graphic2D文本绘制换行(多行绘制),注释详细
项目需求就是要在图片上动态绘制文本内容,但是文本内容会很长,可能会换行,原生的Java的Graphics2D.drawString()并没有换行的方法,只能自己写。本来想通过文本总长度/总文字数计算行数的,结果发现文本存在全角和半角的问题,导致一行参差不齐的。网上我也找了一些方法,但是不是没有注释,就是写的太复杂,可读性非常差,还不如自己写一套。这里我采用了计算单个字符并判断长度,如果长度超出总长度就换行的方法,效果非常好,而且我写的代码注释非常齐全。直接上代码: /** * Gr原创 2021-01-07 11:18:35 · 4024 阅读 · 1 评论 -
【原创】Java获取Kinect V2视频流并保存图片到本地
最近公司接到一个关于Kinect的项目,就要用到Java获取Kinect的视频流,苦逼的我从来没搞过这东西,只能死坑研究,还好有bytedeco团队的github项目(https://github.com/bytedeco/javacpp-presets/tree/master/libfreenect2),才让我脱离困境。结果我以为我做完了,其实是新的厄运的开始,这个库只支持x86的CPU架构,并不支持ARM64的CPU架构,因此我写的所有代码全部作废,也就可以给大家看看了,毕竟功能已经实现了,只是无法在客原创 2020-09-16 15:34:01 · 655 阅读 · 0 评论 -
【原创】SocketIO使用Vue前端+Java后端做一个后端向浏览器的实时推送功能
一、创建Socket.io的服务端官网写的已经非常详细了:https://socket.io/get-started/chat/这里为了省事,直接晒代码了:1、创建package.json{ "name": "test_socketio", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified原创 2020-08-13 17:12:11 · 3280 阅读 · 3 评论 -
【报错记录】阿里OSS报OSSException:The request signature we calculated does not match the signature you pro...
ossClient.putObject报如下错误:com.aliyun.oss.OSSException: The request signature we calculated does not match the signature you provided. Check your key and signing method.[ErrorCode]: SignatureDoesNotMatch[RequestId]: 5F310D06D934BE3436******[HostId]: ***原创 2020-08-10 17:10:17 · 25206 阅读 · 2 评论 -
【原创】Java SDK支付宝退款
支付宝Java SDK是做的不错,但是坑也不少,支付流程网上资料多,做起来也很容易,但是到了退款就麻烦了,网上资料一下就少了不少,遇到问题就非常麻烦了,奈何坑还不少。主要有两个坑:1、AlipayClient调用的方法和支付的方法不一样,支付使用sdkExecute,而退款和查询订单状态使用execute方法!!最大的坑在于使用sdkExecute非但不报错,AlipayResponse中的isSuccess()方法返回的还是true,连response.getData()还有值,我还以为成功.原创 2020-07-08 10:34:12 · 1312 阅读 · 0 评论 -
IDEA 使用JDK1.8使用ProGuard混淆Maven项目代码
这里面的坑实在是太多了,整这个东西整到心态爆炸,要不是公司要求搞这个东西,我都想放弃了!最终在我的坚持下完成了这个混淆。前面的一些小坑:坑1:proguard-maven-plugin下载非常慢,以及跑mvn clean package下载非常慢。解决方法:在C:\Users\${用户名}\.m2文件夹下创建settings.xml,然后填入:<?xml version="1...原创 2018-09-14 16:48:30 · 23199 阅读 · 35 评论 -
解决Tomcat9中文首尾乱码的问题
在项目开发的过程中居然会遇到中文首尾出现乱码的问题,即第一个中文字和最后一个中文字是乱码,其他中文都是正常显示的情况,如图所示。查了一圈下来还是Tomcat的配置问题,倒不是server.xml中配置的问题,而是Tomcat启动参数的问题。Tomcat的启动参数在catalina.bat中,找到catalina.bat的第216行(Tomcat9.0.5)set LOGGING_CONF...原创 2018-11-14 14:38:20 · 2716 阅读 · 2 评论 -
【实战】SpringBoot2.1.0+log4j2整合阿里云日志系统报错解决办法
由于项目要用的日志方面的东西,之前使用log4j一直无法输出log,可能是由于jar包中含有其他配置信息,导致我的配置文件无法生效,这次索性使用log4j2去生成日志.配置按照网上的来:1、pom.xml中去除spring-boot-starter-web中的spring-boot-starter-logging,手动加上spring-boot-starter-log4j2依赖,加入阿里云日...原创 2019-02-19 10:15:44 · 2190 阅读 · 0 评论 -
【报错记录】DexArchiveMergerException: Error while merging dex archives
老项目重启,加入了一大堆新代码之后报错了DexArchiveMergerException: Error while merging dex archives解决方法:1、app的build.gradle中的dependencies加入implementation 'com.android.support:multidex:1.0.3'2、App.java继承MultiDe...原创 2019-06-14 10:10:44 · 5292 阅读 · 0 评论 -
【实战】SpringCloud搭建集群(非局域网)
作者:DCTANT使用背景:将自己的微服务部署到各个地方,多个地方,通过虚拟机服务器和内网映射(穿透)的方法,通过云服务器的主服务访问这些微服务,以减轻云服务器(主服务)的负担,降低云服务器带来的高昂成本。且由于这些微服务部署到了各个地方,有好几套相同的,以至于挂了1~2个也不会导致整个系统崩溃。创作背景:网上大部分教程都是基于同一个局域网中部署微服务集群,而没有牵涉到两个及以上处于完全不...原创 2019-07-18 16:01:47 · 1961 阅读 · 0 评论 -
【原创】巧解KMP算法,循序渐进,看我是怎么自己写一个出来的
作者:DCTANT如需转载请说明出处!KMP算法的关键在于如何省时间,怎么减少重复匹配的次数。这还不简单,与其每个都傻乎乎的比较,不如直接就判断个首字母,首字母不同还比什么,直接跳过,也就等于matchIndex+1。经过漫长的首字母匹配,终于找到首字母一样的了,然后才开始匹配,既然比都开始比了,总不能什么成果都不留下吧,这也太浪费电脑资源了,当发现某个字符不同时,记录下之前已经匹...原创 2019-09-08 12:32:24 · 377 阅读 · 0 评论