- 博客(91)
- 收藏
- 关注
原创 如何配置 Nginx:从入门到进阶
Nginx 作为一个功能强大的 Web 服务器,其配置灵活性和强大的反向代理、负载均衡、HTTPS 支持,使其成为构建高性能 Web 应用的首选。无论你是想运行简单的静态网站,还是构建复杂的微服务架构,Nginx 都能满足你的需求。
2024-10-09 19:34:11
1190
原创 遇到 MySQL 中的两个 Root 用户:问题分析与解决
在 MySQL 中,用户不仅仅通过用户名来区分,还通过 host 字段来指定用户从哪些主机可以登录。这意味着即使用户名是相同的,例如 root,不同的 host (如 localhost 和 %)实际上代表不同的账户。它们的权限可以完全不同。‘root’@‘%’这让我产生了一些问题:这两个 root 用户的区别是什么?是否需要两个 root 用户?如果不需要,如何正确地处理和删除?
2024-10-09 16:01:43
2060
原创 接口报错500InvalidPropertyException: Invalid property ‘xxx[256]‘,@InitBinder的使用
从报错可以看到,前端传入参数个数大于256个,后端使用List接参,超出数组大小限制。
2024-09-24 17:32:37
785
原创 Java垃圾回收
垃圾收集发生的时机Minor GC、Major GC、Full GC等Full GC = Minor GC+Major GC+MetaSpace GC(1)Eden区或S区不够用了 Minor GC(2)老年代空间不够用了 Major GC 伴随着MinorGC(3)方法区空间不够用了(4)手动System.gc(); 只是通知要发生垃圾回收,具体什么时候回收由JVM决定,不建议手动调用垃圾收集器-XX:+UseParallelGC指的是新生代Parallel Scavenge+老年代
2022-03-14 23:01:27
991
原创 JVM调优命令和工具
咕泡课程部分笔记JDK自带命令jps:查看当前java进程jinfo:查看或修改JVM参数jstat:查看class/gc状态信息jstack:查看线程信息,查看死锁jmap:生成堆内存的快照jpsjinfo -flag UseG1GC PID jinfo -flag name=value PID [条件] {manageable} 实时修改某个进程中JVM参数值,manageable才能修改jstat -class PID 1000 10 查看类的信息,每秒打印1次,共打印10
2022-03-13 22:14:52
1063
原创 修改JVM参数
JVM参数有3种标准参数java -version/-help-X参数非标准参数,随着JDK版本变动,如-Xint,使用较少-XX参数使用较多(1)Boolean类型-XX:[+/-]name 启用或停止,如:-XX:+UseG1GC 启用G1垃圾收集器-XX:-UseG1GC 停止G1垃圾收集器(2)非Boolean类型-XX:name=value,如:-XX:MaxHeapSize=100M 设置堆内存其他参数(由-XX参数变形)-Xms10
2022-03-13 21:28:20
2580
原创 EasyExcel多版本poi共存
修改poi的包名打包到本地仓库mvn install:install-file -Dfile=my-poi-4.1.2.jar -DgroupId=com.yootii -DartifactId=poi -Dversion=4.1.2 -Dpackaging=jarmvn install:install-file -Dfile=my-poi-ooxml-4.1.2.jar -DgroupId=com.yootii -DartifactId=poi-ooxml -Dversion=4.1.2 -Dpa
2022-03-10 20:16:03
3150
3
原创 jarjar.jar修改包名多版本共存
下载官网的jar包1.3版本:https://mvnrepository.com/artifact/com.googlecode.jarjar/jarjar将要修改的jar包和jarjar-1.3.jar放在同一个目录在jar包目录下,使用下面的命令,查看能不能正确输出包名,如果没有任何输出或报错,则无法使用。java -jar jarjar-1.3.jar strings poi-4.1.2.jar结果报错!!!看来这个jarjar的版本无法使用,在网上找到了https://gite
2022-03-10 19:32:42
1398
2
原创 POI生成Excel设置图片的等比缩放并居中
POI提供了HSSF、XSSF以及SXSSF三种方式操作Excel。区别如下:HSSF:操作Excel97-2003版本,文件扩展名为.xls。XSSF:操作Excel2007版本开始,文件扩展名为.xlsx。SXSSF:是在XSSF基础上,POI3.8版本开始提供的一种支持低内存占用的操作方式,扩展名为.xlsx。下面代码适用于Excel 97-2003,文件后缀为.xls,使用的poi版本为5.1.0 <dependency> <groupId>org.apac
2022-01-13 13:26:12
6625
原创 JXLS生成excel填充图片设置大小
官网文档:Image-Commandjx:image(lastCell="A4" src="headMap.image" imageType="JPEG" scaleX="1.0" scaleY="1.0")解释:1、imageType图片类型默认是PNG,支持:PNG, JPEG, EMF, WMF, PICT, DIB。2、src是model中传入的字节数组byte[]。3、lastCell是图片结束位置,(不设置scaleX,scaleY)会自动拉伸图片填充满定义的格子。比如你在A1中
2022-01-12 19:21:25
2785
4
原创 Java mail outlook发邮件提示升级TLS1.2
发送邮件失败提示如下:javax.mail.AuthenticationFailedException: 421 4.7.66 TLS 1.0 and 1.1 are not supported. Please upgrade/update your client to support TLS 1.2. Visit https://aka.ms/smtp_auth_tls. [HK0PR03CA0098.apcprd03.prod.outlook.com]增加发送邮件参数pro.put(“mail
2021-12-20 17:19:06
6298
1
原创 log4j升级到log4j2
删除log4j原有的依赖包<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>sl
2021-11-09 18:59:59
1026
原创 SLF4J: Found binding in [jar:file:activemq-all-5.11.1.jar/org/slf4j/impl/StaticLoggerBinder.class]
错误警告如下,导致log4j2不生效,无法打印日志SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/D:/workspace3/demo/target/demo/WEB-INF/lib/activemq-all-5.11.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:
2021-11-09 18:43:34
2083
原创 AOP中的JoinPoint、ProceedingJoinPoint
1.JoinPoint@AfterReturning("execution(* com..*.*Mapper.update*(..))|| execution(* com..*.*Mapper.insert*(..))" + " || execution(* com..*.*Mapper.add*(..))") public int afterAddAndUpdate(JoinPoint joinPoint){ try { String declaringTypeName = joinP
2021-11-01 17:03:08
3025
原创 eclipse maven项目没有test目录
确定源码中有test文件夹eclipse中选中项目名称,右键buildPath-configure build path确定,然后Apply就可以再项目中看到了
2021-10-14 10:30:56
1109
原创 windows测试网络命令ping telnet
ping在windows系统下,在cmd命令行中直接ping IP可以知道地址能不能访问通,ping命令不能加端口。ping -t:连续ping指定计算机,直到手动中断,Ctrl+c终止它继续ping下去。ping的用法telnet如果一个服务器上有几个项目,想指定端口来区分,可以使用 telnet IP port 命令。如果提示telnet不是内部命令,则需要在"控制面版 - 程序 - 启用或关闭windows功能"中设置,选中telnet,如下...
2021-10-08 20:03:45
858
原创 Tomcat设置内存参数,导致IDEA中tomcat启动没有加载项目
自己手动修改了tomcat 的catalina.bat文件,set "JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+UseParallelGC"增加了这个,但是好像没配置对,导致在IDEA中tomcat一直启动不成功,单独启动startup.bat可以启动成功,将这行去掉后,IDEA中Tomcat启动成功
2021-09-26 14:56:03
1424
原创 mysql命令行备份和还原数据库
mysqldump -uxxx -pxxx -h127.0.0.1 -P3306 --routines --default-character-set=utf8 dbname > dbname_2021-08-21.sql备份数据库
2021-09-17 14:54:26
283
1
原创 [org.apache.pdfbox.pdmodel.font.PDTrueTypeFont] - Could not read embedded TTF for font CAAAAA+DengXi
1报错:Font 'STSongStd-Light' with 'UniGB-UCS2-H' is not recognized.修改为:2报错: [org.apache.pdfbox.pdmodel.font.PDTrueTypeFont] - Could not read embedded TTF for font CAAAAA+DengXian-Bold java.io.IOException: glyf is mandatory at org.apache.fon
2021-09-17 10:18:39
2448
原创 java poi 修改excel保留excel格式
/**outFilePath:输出文件路径inFilePath:输入文件路径rows:输入数据*/public static void writeExcel(String outFilePath,String inFilePath,List<Map<String, Object>> rows) throws Exception { if (rows == null) { return; } InputStream in = new FileInputStr
2021-09-13 12:07:42
2068
1
转载 浮点数、BigDecimal等值判断,不能使用==和equals
浮点数使用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。二进制无法精确表示大部分的十进制小数。反例:float a = 1.0F - 0.9F;float b = 0.9F - 0.8F;if (a == b) { // 预期进入此代码块,执行其它业务逻辑 // 但事实上 a==b 的结果为 false}Float x = Float.valueOf(a);Float y = Float.valueOf(b);if (x.equals(y)) { // 预期
2021-08-05 16:09:19
427
原创 Mysql分库分表
垂直分库单库:客户相关表、合同相关表、放款相关表等等分库:客户数据库、合同数据库、放款数据库等等涉及到问题:1.联表查询字段冗余:将经常使用的客户字段放到合同库中,避免跨库查询数据同步广播表(全局表)绑定表(ER表):父表id和子表中有相同父表id的数据放到一个库系统层组装2.分布式事务工具:Atomikos 、LCN、 Seata水平分库分表客户表分成多个数据库:客户表DB1、客户表DB2水平分表带来的问题?1.联表查询的问题2.翻页查询3.全局ID,auto incre
2021-06-03 23:10:23
147
1
原创 mysql知识点笔记
系统参数配置查看innodb缓存池值的大小show VARIABLES LIKE '%innodb_buffer_pool_size%' innodb_buffer_pool_size=8G与MyISAM不同,InnoDB使用缓冲池来缓存索引和行数据,设置得越大,需要的磁盘I/O就越少访问表中的数据。 在专用数据库服务器上,您可以设置此项参数高达机器物理内存大小的80%,但是不要设置它太大,因为物理记忆的竞争可能会太大导致操作系统中的分页。 请注意,在32位系统上你每个进程可能限制为2-3.5G的
2021-06-03 22:42:50
179
原创 github查询技巧
例如在github上搜索spring 相关的程序找百科大全 awesome spring找例子 spring sample找项目架子 spring starter/spring boilerplate找教程 spring tutorial
2021-06-02 09:57:27
111
原创 Eclipse启动Tomcat一直100% preparing launch delegate。。。
发现这个问题网上的答案真的是五花八门,原因一个和一个不一样,当然我遇到的问题,也可能和你的不一样,因为引起这个问题的原因太多了,,启动超过45s后,报超时,tomcat自动shutdown:然后点击右下角的100%显示最后将tomcat的server.xml的参数改为启动成功。...
2020-05-15 19:55:19
932
原创 win查看端口占用 命令行
查看所有端口占用情况netstat -ano查看指定端口占用情况netstat -ano | findstr “8161”结束PID进程taskkill /pid PID -t -f结束xxx.exe进程taskkill /f /t /im xxx.exe
2020-04-24 21:21:51
208
原创 解决win7 中powershell挖矿占用CPU100%
解决办法将任务管理器中的powershell.exe进程全部结束,如果太多,关机重启也可以。找到C:\Windows\System32\WindowsPowerShell\v1.0文件夹,将文件夹下的powershell.exe随便修改一个名字,比如power.exe。如果修改名字时,提示如下需要先在上一级目录,v1.0文件夹上,右键“属性”–>“安全”–>“高级”–>...
2020-04-21 20:31:02
2371
原创 接口请求时间太长,jstack观察锁持有情况
场景:在工程A中调用工程B的接口完成一些逻辑,A中每调用一个接口打印一条信息,观察出当接口连续调用一段时间后,会卡住一会,然后又继续执行。老大给出建议查看下jstack dump堆栈信息,查看阻塞和耗时长的操作。在命令行终端,输入jps 查看当前java进程id;jstack –l PID >>log.txt, PID指进程Id,将堆栈信息输出到当前目录下的log.txt文件中。...
2020-04-21 20:10:52
737
原创 MySQL / SQL Server判断表或临时表存在则删除
MySQL判断表存在则删除,table_name是表的名字DROP TABLE IF EXISTS table_name;SQL Server判断临时表存在则删除,#temp是临时表的名字if object_id('tempdb..#temp') is not nulldrop table #temp判断表存在则删除,t_table是表的名字if object_id...
2020-03-27 18:58:21
3421
转载 java aspose word/html转pdf
下载aspose-words-15.8.0-jdk16.jar包package com.yootii.bdy.util;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import com.aspos...
2020-03-18 16:27:06
2187
1
转载 java mht转html文件
mht文件转换成 html文件import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.File; import java.io.F...
2020-03-18 16:02:43
970
原创 windows MySQL8 zip安装
官网下载zip安装包解压在某个目录,我放在了D:\software,修改解压文件mysql-8.0.11-winx64下的my.ini文件,设置basedir = D:/software/mysql-8.0.11-winx64/datadir = D:/software/mysql-8.0.11-winx64/data/对于mysql5.7之后的版本,需要在命令行先运行以下命令,安装服务...
2020-03-16 11:07:36
197
原创 OCR识别PDF文件
1现有解析pdf的方法使用org.apache.pdfbox读取pdf,只能读取pdf中的文字,有些纸件扫描成的pdf文字会错乱,有些字还是图片的方式显示的,导致读取的内容不全,常常会获取不到想要的数据。2 OCR文字识别pdf需要转换为图片,进行识别,识别率高。2.1 调用百度接口优点:识别率高,识别速度快缺点:按次收费2.2 使用开源工具读取pdf文档2.2.1...
2020-03-11 19:41:09
5355
原创 spring中集成P6Spy监控对数据库的操作
源码:https://github.com/p6spy/p6spy对jdbc的操作监控,可以方便记录每次数据库操作语句和时间,在测试环境下使用,可以排查SQL语句问题,涉及数据库性能问题可以看看日志。注意不要在上线产品里使用。修改pom.xml,增加对p6spy的依赖<!-- https://mvnrepository.com/artifact/p6spy/p6spy -->...
2020-03-11 19:33:31
435
原创 mysql function函数语法
delimiter在mysql的命令行操作中的作用:指定一个符号为一条SQL 语句的结束,默认为分号。一条SQL语句结束时会立即执行,而procedure与function中存在分号,所以定义procedure与function之前,需要先修改此符号。如:delimiter //变量变量名为‘@xxx’形式,不需声明,可直接使用,默认值为NULL(但procedure或函数中的局部变量名不带...
2020-01-13 20:33:07
6666
原创 Java反射判断对象的全部属性是否为空(包括父类属性)
//判断该对象是否: 返回ture表示所有属性为null 返回false表示不是所有属性都是null //子类对象判读为空不包括父类的字段 public static boolean isAllFieldNull(Object obj) throws Exception{ Class cla = (Class) obj.getClass();// 得到类对象 ...
2019-12-05 19:51:41
1406
原创 java解压zip的实现及IllegalArgumentException:MALFORMED错误的处理
解压文件的代码是网上随便找的,解压到以原压缩包文件名为文件夹名称的目录下:/** * 解压文件到指定目录,解压后的文件名称和之前一致 * @param zipFile 待压缩文件 * @param descDir 指定目录 * @throws IOException */public static void unZipFile(String zipFilePath,Str...
2019-11-11 19:37:38
2787
原创 字符串去掉空格问题
遇到一个头痛的问题,解析不出来这个空格到底是什么空格,字符串str=“ 48 454878”,想要只获取到数字,使用str.replace(" “,”");得到结果为“ 48454878”,前面那两坨不是空格吗?正则表达式中,\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。但是这个空格匹配不了\s。String str = "123 48 4548...
2019-10-30 11:45:52
917
原创 MySQL复杂查询使用临时表/with as(类似表变量)
查询需求:如果第一个SQL能查出结果,则返回结果,否则,执行第二条SQL,返回第二条SQL的结果。SQL Server中使用表变量的方式:如果查出有“wangwang”用户则返回,否则查询“zhangzhang”用户的id返回。有优先级declare @temp table(id int)insert into @tempselect idfrom userwhere name =...
2019-10-22 17:58:26
16488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人