
java
不恋水的雨
这个作者很懒,什么都没留下…
展开
-
springboot整合mybatis-plus和pagehelper插件报错,
在springboot和myabtisplus版本没有冲突的情况下,MybatisPlusAutoConfiguration配置类没有生效,查看该类发现存在生效条件,必须存在数据源的Bean对象。原创 2024-08-06 14:47:03 · 392 阅读 · 0 评论 -
java实现多数据源跨表关联计算内存溢出解决思路
有多个数据源,以下简称数据源A、B、C,来自相同或不同的数据库,现在需要把数据取出,在java中进行计算,常规操作是分别把每个数据源的数据全部查询出来,然后按照关联条件进行关联计算。查询时会出现一个很明显的问题,若这三个sql任意一个数据量很大,很有可能出现内存溢出的问题,因此不能直接查询全部数据,而是需要进行分批查询然后计算。使用第一个数据源(即A)作为计算的主表,根据关联条件去其他数据源过滤得到用于计算的数据。1.首先构造数据源A的查询sql,假设构造后的sql为。数据源B和C的查询sql分别为。原创 2024-07-08 09:42:11 · 507 阅读 · 0 评论 -
aspose.words提取所有word书签内容另存为新文件
aspose.words提取所有word书签内容另存为新文件。原创 2024-06-20 18:28:00 · 351 阅读 · 0 评论 -
mybatisplus填充公共字段MetaObjectHandler后不生效解决方式
所以没有触发实现类的填充代码,最好是直接对整个实体进行新增或更新,就能够进入实现类。注意只有指定了fill参数,这个属性插入或修改时才会触发。上述实现类,程序根本就没有进去。所以没有触发实现类的填充代码,最好是直接对整个实体进行新增或更新,就能够进入实现类。注意只有指定了fill参数,这个属性插入或修改时才会触发原创 2024-05-27 17:17:38 · 1242 阅读 · 0 评论 -
aspose通过开始和结束位置关键词截取word另存为新文件
【代码】aspose通过开始和结束位置关键词截取word另存为新文件。原创 2024-01-02 11:55:21 · 870 阅读 · 0 评论 -
java读取邮件标题时,突然报错Failed to load IMAP envelope
生产环境之前可以正常使用imap协议收取邮件,突然有一天报错Failed to load IMAP envelope,可以确定邮件服务器、账号密码、配置都是正确的,使用foxmail可以正常连接并成功收取邮件,因此可以推测java代码可能有兼容性问题,连接服务器的代码如下,开启mail.debug后,打印日志可以看到已经成功使用imap连接到服务器。这里不知为何没有获取到envelope这个对象,网上找到说法说是邮箱服务器设置了限制,只收取最近30天的邮件,但是我遇到的并不是这个问题。原创 2023-07-17 16:46:47 · 1128 阅读 · 0 评论 -
Aspose.word判断两个书签区域范围是否重叠
Aspose.word判断两个书签区域范围是否重叠。在word文档中,居然可以对选中的一个区域添加多个不同名称的书签,即:多个书签可以指向同一个范围,我现在有一个书签,我需要判断得到出和这个书签范围重复和有交集的所有书签,通过以下方法可以实现:原创 2023-01-14 21:33:03 · 330 阅读 · 0 评论 -
java使用Aspose.word保存word更新目录页码报错、页码不对以及样式错乱解决
更新域时会更新目录,但是页码可能会有偏差,原因是无法保证域的更新顺序,目录可能不是最后一个更新的,而在更新其他域时导致页码再次发生变化。而且这个更新方法不止会更新页码,还会导致样式和更新前发生改变。在更新文档域之前,我们首先需要更新一次初始的页码,调整为正确的页码,因为文件里面原有的页码可能就是错误的,最后可能出现页码不准确的情况。注意:目录里面的每个标题,在文档中都会有一个引用, 这些引用都必须加上一个_Toc开头的隐藏书签,否则目录页码无法正常更新,手动更新目录时会出现"原创 2023-01-13 22:30:07 · 7129 阅读 · 21 评论 -
jfreechart后台生成图片采样完美解决方案以及样式美化
用jfreechart生成图片有很多问题,例如:x轴数据量多一点时,直接显示成了省略号,另外jfreechart默认的样式也是比较丑的,如下: jfreechart在画x轴标签时,会根据图片设置的宽度,和x轴坐标数计算出每个坐标占用的最大宽度,超过这个宽度,再去判断是否设置了参数:默认为0,不设置这个参数的话就不会进行换行,就会直接显示省略号。因此解决思路之一就是设置这个换行参数,或者适当增加图片宽度,可以在一定范围内解决x轴省略号的问题。但是当x轴数量太多,需要进行采样.................原创 2022-06-30 16:37:24 · 3996 阅读 · 2 评论 -
java实现list均匀采样算法
java实现list均匀采样算法,从一个List对象中均匀抽选出固定数量的样本。原创 2022-06-27 10:38:51 · 1364 阅读 · 2 评论 -
浅谈Thumbnails压缩gif图片质量的实现方式
Thumbnails压缩gif图片质量的实现方式,我们可以读取到gif的每一帧,然后对每一帧都进行压缩,最后再将压缩后的帧按顺序拼接起来,组成新的gif,原则上新的gif占用的空间会减少。然而存在一个问题,我们使用上面的代码去压缩时,由于每一帧图片大小不一致,压缩的比例也不一样,无法事先确定图片宽高,导致压缩出来的每帧的宽高都不一致,这样就导致gif没法看了。 因此我们不能将图片帧按大小压缩,而是应该直接进行缩放比例,这样也能压缩质量,保证每张图片宽高一致。...原创 2022-06-10 17:14:01 · 2411 阅读 · 0 评论 -
Groovy大量计算导致oom的解决办法
最近在项目中遇到一个内存持续增长的问题,系统启动后内存使用原本很低,但是在系统运行的过程中,内存一直在慢慢的增加,最后机器发出了内存预警,查看使用的内存,短短一个月居然达到了8G。经过一系列排查,发现是大量调用groovy脚本计算导致的,使用visualVM监控jvm已加载的类数量:发现每次调用脚本,都会增加一个类,问题代码: public static ScriptEngine engine = new ScriptEngineManager().getEngineByName("原创 2022-05-24 11:45:44 · 1414 阅读 · 5 评论 -
mybatis-plus使用PageHelper分页存在jar包依赖冲突问题
pom.xml文件关键配置 <!--spring-jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <exclusions>原创 2022-05-06 14:16:02 · 422 阅读 · 0 评论 -
springboot集成mybatisplus时报Invalid bound statement错误 因为service创建了2次导致
public class Test { @Autowired private UserService userService;我在controller中注入service时,调用list方法发生如下报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.zhou.app01.sys.oa.service.UserService.getBaseMapper a..原创 2022-04-28 17:09:28 · 1786 阅读 · 0 评论 -
mybatis使用PageHelper的bug之第一次缓存后会自己分页
最近遇到一个mybatis一级缓存的问题,使用了pagehelper分页插件,程序频繁执行一个查询sql,数据量大约200条,这个sql没有使用分页,但是在执行大约6次之后,发现这个sql返回的数据变成5条,但是在之后的一段时间里面,再执行的话也没有出现返回5条的情况,经过对pagehelper源码的追踪,我发现这个是缓存导致的。原来是因为频繁执行一个查询sql,mybatis出于性能考虑,数据量不大的话会去查询全表的数据并缓存,然后将数据分页然后返回,问题就在这儿,我程序里面根本没有分页,参数里面也没原创 2021-01-15 16:24:45 · 795 阅读 · 2 评论 -
poi版本3.12以上添加多个批注报错的问题
添加批注的代码如下:public static void addHSSFComment(Cell cell,String value){ Comment comment = cell.getSheet().createDrawingPatriarch().createCellComment(new HSSFClientAnchor(0, 0, 0,0, (short) 3, 3, (short) 5, 6)); // 输入批注信息 comment.se原创 2021-01-18 14:43:20 · 1731 阅读 · 0 评论 -
springboot集成shiro使用ehcache的会话管理的完美实现方案
ehcache配置文件:<defaultCache maxEntriesLocalHeap="0" eternal="true" timeToIdleSeconds="0" timeToLiveSeconds="0" overflowToDisk="false" diskPersistent="false" />要想让Shiro的Ses原创 2020-07-18 15:10:53 · 852 阅读 · 0 评论 -
手动调用System.gc()导致程序执行缓慢的坑
最近在项目中遇到一个问题,页面打开非常慢,要20秒才能加载完毕,经过调试发现后台耗时非常高,经过一系列的盘查和尝试,发现了代码中有一段手动调用jvm垃圾回收的代码,因为这段程序会占用较高的内存,这个调用不一定有用,当时觉得影响不大就忽略掉了。当我随手取去掉这句代码时,页面打开速度直接降到了一秒钟,真是天翻地覆的差别.......原创 2020-06-03 11:05:14 · 1944 阅读 · 0 评论 -
poi修改excel单元格值导致单元格变成橙色的问题(WPS)
问题描述:在Java程序中将一个单元格的值改成空,结果导出excel后,用WPS软件打开,发现这个单元格背景色变成橙色,但是当这个单元格激活输入模式后,橙色又消失了。如下图:在单元格中输入值后,橙色消失,如下图:问题代码如下:这里把单元格值清空,写法看上去没什么问题,开始觉得是excel的这个单元格格式有问题,将这个单元格用格式刷改成空白单元格格式后,橙色也消失了,但...原创 2020-04-08 11:59:57 · 6390 阅读 · 0 评论 -
冒泡排序和选择排序
https://blog.youkuaiyun.com/qq_16855077/article/details/103876151转载 2020-01-10 10:12:00 · 120 阅读 · 0 评论 -
log4j2.xml配置--日志打印多次的问题
<?xml version="1.0" encoding="UTF-8" ?><!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --><!--Configuration后面的status,这个用于设置log4j2自身内部的信息...原创 2019-12-30 11:28:25 · 1237 阅读 · 0 评论 -
java读取配置文件中文乱码
配置文件是utf-8编码,但是使用下面这种方式读取出来的中文还是乱码的: public static void main(String[] args) throws Exception{ Properties p = loadProperty(); String a = p.getProperty("pro.key"); System.o...原创 2020-01-08 10:40:01 · 3094 阅读 · 0 评论 -
Java处理带BOM标记的数据流
BOM —— 字节顺序标记(Byte Order Mark)BOM标记的作用是告诉编辑器当前文件使用的编码方式,方便编辑器识别,一般编辑器中不会显示这个标记,但是这个标记是占用了几个字节的空间。一个字节有"大字节序"(BE)和"小字节序"(LE)的区别,比如0x2138是两个字节的字符,0x21和0x38,计算机处理字节序的时候,不知道什么是高位字节,什么是低位字节。它只知道按顺序读...原创 2020-01-09 15:12:54 · 528 阅读 · 0 评论 -
分享一个Java使用GZIP压缩数据和文件的工具类
import org.apache.commons.io.IOUtils;import java.io.*;import java.util.zip.GZIPInputStream;import java.util.zip.GZIPOutputStream;/** * @author lang.zhou * @date 2019/8/30 */public class GZi...原创 2020-01-09 17:27:06 · 747 阅读 · 0 评论 -
java脚本引擎Groovy并发控制
ScriptEngine是线程安全的,自身没有线程问题,但是变量作用域(Bindings)存在线程问题。一般计算时,如果不考虑线程,都是使用的默认Bindings:通过源码可以看到,如果不指定Bindings,默认使用内置的Bindings。这就会导致多线程存在问题,一个线程的变量可能会被另一个线程覆盖掉,导致计算结果出错。所有为了保证不同线程变量作用域相互独立,可以根据线程号来创建B...原创 2020-01-03 17:26:59 · 1278 阅读 · 1 评论