自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星月昭铭的博客

重新开始 ✌

  • 博客(97)
  • 资源 (1)
  • 收藏
  • 关注

原创 uni-app打包h5并部署到nginx,路由模式history

uni-app打包有些坑,当时运行的基础路径填写了./,导致在二级页面刷新之后,页面直接空白。就只能换一个路径了,nginx也要跟着改,下面是具体步骤。

2025-03-13 10:24:48 554

原创 uni-app打包成H5使用相对路径

打包之后请求的路径没有带上域名,网上找了一圈,问ai也没用,各种试,终于给试出来了。

2025-03-12 16:48:11 372

原创 若依vue前端queryParams搜索下拉框无法重置或者重置值有问题

最后试了一下在resetQuery方法里面给queryParams重新赋上一个对象,发现可以正常重置了,能保证值不会改变,还有从菜单点进去重置值会消失。在A页面点击查看详情跳B页面,发现如果选择不同行跳转的话,点击重置按钮,下拉框里面的值会变成第一次进来的值。找了一圈没找到答案。

2025-03-09 17:14:34 205

原创 springBoot项目只有打包好的jar,没有源码,在IDEA中调试代码(二)

这种方式好处就是可以改jar包里面的代码,缺点就是当jar包中的类过多时,会耗费大量的时间来复制。而且如果代码是做了混淆等处理,通过复制jar包中的代码这种方式就不可行,因为反编译出来的代码可能是错误的。首先,之所以第一篇文章会采用复制的方式,是因为当时发现把所要运行的jar包也当作依赖放到libs中,运行代码会提示类找不到或缺失一些什么配置,当时没时间排查是什么问题,就采用了复制代码的方式。有时候,我们只是想debug,不想通过复制类的方式来运行,就需要通过其他方式来达到目的。

2025-02-17 14:42:41 563

原创 打开MyOra提示free version has expired版本已经过期

打开MyOra.exe之后,提示过期了,需要去。下载最新的版本,但是我这个就是最新的。解决方法是把电脑时间往前调,就可以打开了,比如我这个是10.2版本,我改成了24年的日期就可以打开了。

2025-01-09 11:21:40 277

原创 链式调用方式重写父类set方法导致fastjson解析的对象属性未赋值

昨天使用fastjson的JSON.parseArray(json, class)反序列化的时候,发现返回的list列表中的对象某个属性为null,但是json字符串里面这个属性是有值的,经过排查发现是因为子类重写了父类的set方法,且返回值类型是父类导致的。

2025-01-04 16:53:29 845

原创 sentinel集成nacos启动报[check-update] get changed dataId error, code: 403错误排查及解决

因为平台写的一个限流代码逻辑有问题,所以准备使用来限流。平台依赖里面已经引入了,之前也测试过,把关于的配置加上后,启动一直输出错误 [fixed-10.0.20.188_8848-test] [check-update] get changed dataId error, code: 403。先说结论,(我这里用到的是版本)的代码有问题,他这个版本的相关配置没有和的属性,导致只能在服务没有配置账号密码的时候使用,一旦改了账号密码,就无法正常访问。今年不能用去年可以是因为今年测试环境改了密码而去年是默认的。

2024-12-27 16:03:22 1473

原创 VisualVM工具Visual GC界面各参数详解

网上也没有看到一个比较完整的介绍VisualVM工具Visual GC界面各种参数的文章,就想着写一个。Visual GC界面除了查询GC活动之外,还可以查看堆、元空间区域的内存使用情况,并且能看到各区域内存使用的趋势变化。这个界面一共分为三块区域,Spaces、Graphs、Histogram,都可供勾选是否显示

2024-12-25 11:00:29 773

原创 Windows PowerShell里面使用-Dfile.encoding=UTF-8时报Error: Could not find or load main class错误

-D里面的属性包含了.(点)需要用引号(单引号双引号都行)包裹起来。

2024-12-24 11:04:04 150

原创 new byte[]数组的时候发生NegativeArraySizeException异常

在写一个测试demo排查堆内存问题时,发现当输入1*3000的时候会发生NegativeArraySizeException异常,这个异常是说创建数组的时候,给了一个负数的容量大小。

2024-12-24 09:43:15 274

原创 IDEA项目中莫名多出一个null文件夹的排查过程(适用于排查一些不知道哪个程序创建的文件)

项目中会突然出现一个null文件夹,但是并不知道是谁创建的,通过Process monitor排查找到了是哪个程序导致的

2024-12-20 15:05:41 644

原创 Set集合进行!contains判断IDEA提示Unnecessary ‘contains()‘ check

如果if判断了元素不存在Set集合中,且if代码块只有一行往Set集合里添加同一个元素的代码,就会爆Unnecessary 'contains()' check提示,可以忽略不管

2024-12-18 14:56:57 366

原创 记一次使用arthas等工具排查代码执行慢的过程

部门内有个报表项目,操作几次报表全表审核,容器就会重启,k8s容器给了4个G。使用arthas工具排查,定位问题后最终解决。

2024-12-17 11:04:16 1186

原创 Oracle中COUNT函数对NULL和空字符串的处理方式

在Oracle中,当你保存设置一个值为空字符的时候,其实会被保存为null。当你使用is not null查询的时候,这条记录是不会被查询出来的,而MySQL中会被保存为空字符,is not null也能正常查询出来

2024-12-16 10:49:30 362

原创 POI遍历行所有单元格的四种方式,getPhysicalNumberOfCells方式遍历有问题,慎用

HSSFWorkbook类型的工作簿,行数据是用TreeMap存储的,列数据是用HSSFCell[]数组来存的。使用getPhysicalNumberOfCells的结果来遍历,可能会导致空指针问题

2024-12-07 17:58:26 609

原创 Spring的StopWatch工具类报No tasks run: can‘t get last task interval错误

来一段代码(之所以这么用是因为有多个线程要执行,然后这个类的方法大概每个线程都会被调用一千次以上,而且现在这段代码已经不合理了,因为完全可以在。如果有前面代码中类似的场景(感觉应该没有,这个也是忘记删除代码测试导致的),可以判断。后面根据报错输出的调用栈信息,找到了报错的代码,当调用。(没有任务运行,无法获取最后一个任务间隔)的错误。是否大于0,如果大于0说明至少被调用过一次。方法的时候,需要保证起码有一个任务调用过。方法中被赋值了,也就是说创建了一个。方法调用之后,必须调用。

2024-12-05 09:50:15 327

原创 List集合中toArray方法使用注意事项(IDEA爆黄提示Call to ‘toArray()’ with pre-sized array argument ‘new )

通过上面的代码和运行结果来看,IDEA爆这个黄色波浪线还是有道理的,如果使用不得当可能就会出现问题。比如传入了一个长度与集合size()相等的数组,调用toArray之后又接着需要原数组,这时候原数组的值就丢失了。大于的时候也可能出问题,如果我们要使用toArray返回的数组,当用它做遍历的时候,就会遍历到不属于集合中的值,还会出现数组长度与集合长度不一致的情况。所以推荐使用传入一个长度为0的数组,例如之前的,就可以改造成。

2024-12-04 10:36:34 392

原创 修改IDEA配置导致Spring Boot项目读取application.properties中文乱码问题

之前很多配置都是放在nacos里面,然后这次同事有个配置写在application.properties中,这个配置含有中文,启动之后发现拿到的中文值会乱码,然后就帮忙看了一下问题。

2024-11-27 18:00:35 853

原创 浏览器控制台中使用ajax下载文件通用代码(没有postman等情况下)

有时候,可能电脑里面没有postman(比如内网),然后又需要导出一些文件,前端又没有提供相应的功能(比如循环调用导出等),这时候我们就可以通过在控制台写代码的方式来实现了。这个还是在帮同事处理实施的问题时候想到的,当时在内网环境,同时导出4000家单位处理之后的数据系统会卡死,然后就用了这种方式,写代码循环了5次来分批导出。,总之就是一句话,你代码里面能发送的ajax请求,控制台里面也能。

2024-11-25 17:21:18 1447

原创 springBoot项目只有打包好的jar,没有源码,在IDEA中调试代码(一)

最近要看一个功能的实现,只有jar包和部署好的程序,反编译纯看代码难度太大,所以就在想能不能在IDEA调试。晚上睡觉的时候想到了一个点子,隔天捣鼓了一下发现可以调试。下面是具体的步骤。

2024-10-17 09:59:23 893 4

原创 自定义一个maven插件,deploy(推送)依赖到私服的时候企业微信群里通知

很多时候,项目里面会引入各种同公司写的依赖,而这些依赖有时候更新到了nexus私服,其他人又不知道,导致本地的代码执行不符合预期。我们这就有这种情况,因为依赖还处于开发阶段,并不是一个release版本,maven又是设置的不会每次都会去下载快照,就导致有人没有拉取最新的包写代码。为了避免这种情况,就考虑写一个maven插件,在deploy的时候,群里发一个通知。大概的步骤就是下面5步,最后一步查看是否能正确发送消息。

2024-09-09 09:52:08 831

原创 SpringBoot项目中mybatis执行sql很慢的排查改造过程(Interceptor插件、fetchSize、隐式转换等)

刚入职公司,就发现公司项目跑sql特别慢,差不多一万条数据插入到数据库要5秒以上(没有听错,就是这个速度),查询修改删除也是特别慢。直到22年年底实在是受不了了,我就去排查了一下。用的是Oracle数据库,mybatis、mybatis plus,其中mybatis是引入的平台的依赖。平台封装了一些工具和插件。

2024-08-29 17:59:52 3797 1

原创 maven deploy的时候,让指定的子项目不上传

【代码】maven deploy的时候,让指定的子项目不上传。

2024-08-21 09:19:27 480

原创 java SPI实现类中注入spring bean对象

在项目中,用到了SPI来扩展一些功能,发现很多实现类中用到了bean对象,并且都是通过getBean的方式每次都去拿,感觉不是很方便,而且速度也没有直接使用对象快。正好安排的工作就是优化那一块的代码,所以就改造了一下,让SPI实现类中支持注入spring bean依赖,下面的类名有所改变,还有使用到的方法,大家可以按需改造。方法有三个形参,第一个是要注入bean依赖的对象,第二个是注入的方式(根据类型或名称),第三个参数是是否依赖检查,这里我们用。,需要自动注入bean的类,就实现这个接口;

2024-08-08 16:43:08 623 1

原创 Java的jstat命令输出GC信息时携带时间信息(Windows系统中)

但是很多时候,我们都是在Windows系统中开发,可能有些人没有Linux环境,所以这篇文章就讲一下在Windows系统中jstat命令怎么在输出GC信息的时候携带时间信息。

2024-08-02 11:07:38 1238

原创 IDEA启动springBoot项目,显示构建和正在启动XxxApplication之后无反应

今天拉其他项目组的代码,然后发现IDEA启动不了项目,点击启动一闪而过,啥提示也没有,因为之前有过类似IDEA出错的经验,所以知道怎么排查。控制台输出的异常信息提示命令行过长,文件名或扩展名太长的。并且有提示怎么修改。首先打开IDEA日志输出,然后看具体是什么错。帮助>Tail Log in Console。知道问题所在了,就可以来修改了。

2024-08-01 17:32:28 522 3

原创 Java的jstat命令输出GC信息时携带时间信息(Linux系统中)

使用如下命令可以给jstat输出的gc信息携带时间了 jstat -gc 1 1000 999999 | while read -r line; do timestamp=$(date +"%H:%M:%S"); echo "$timestamp $line"; echo "$timestamp $line" >> one.log; done

2024-07-30 15:44:20 572

原创 centos中编译openjdk8

此次使用的服务器是centos系统,12核,16G,所以编译起来相对较快(所以很慢的话,可能是服务器配置不高,可以等)。引导JDK是用于编译新JDK的现有JDK。总的来说,这条命令配置了一个64位、优化为服务器使用的JDK编译环境,启用了详细的调试信息,同时指定了一个特定版本的引导JDK。如果不修改的话编译会报错,因为他这个代码就是说,超过10年之后再编译,编译就会抛出一个异常,所以要给他改大,或者注释那个判断。注意,编译出来的jdk,在windows上无法使用,要在类unix(linux)系统中使用。

2024-07-30 11:18:21 1023

原创 VisualVM里面的Threads线程界面各种状态对应的Java代码

写一个示例代码,把几种常见的情况都开一个线程运行。

2024-07-08 17:09:14 376

原创 探究Executors创建的线程池(如newFixedThreadPool)其核心线程数等参数的可调整性

因此会导致一个问题,也就是当我们将最大线程数调小,当任务量超过了这个最大线程数的时候,就会发现异常,提示说任务被拒绝,因为每个任务都需要一个线程。是创建一个指定线程数的线程池,所以就好奇创建完成之后,是否可以改变他的线程池配置,比如调大核心线程数。于是就查看了一下源码,此方法中,核心线程数和最大线程数都是形参中传入的大小,keepAlive时间为0,返回的对象是。在下面的代码中,创建了一个线程数量为2的固定线程池对象,然后改变其核心线程池大小,添加9个任务,最后输出,发现核心线程数参数确实被改变了。

2024-07-04 11:32:24 407

原创 自定义APT插件导致IDEA调试时StreamTrace(跟踪当前流链)报internal error(内部错误)

IDEA里面debug的时候,针对stream流提供了流追踪调试功能,方便大家调试stream流代码。最近改其他人代码,需要用到这个,发现提示内部错误。

2024-06-27 14:14:57 588

原创 Ctrl+Back(回退键)快捷键失效,导致IDEA不能删除多个字符

最后又下载了一个查看快捷键被占用的软件,找了一圈,没有占用这个快捷键的服务。这阵子开始用了,在Idea里面不能通过Ctrl+Back的方式删除,只能一个个字符删除,真的难受。重新安装了搜狗,一顿找,最后在输入法管理器里面找到了,我是真服了,肯定是之前以为按back会把快捷键删除,然后就没管,而且这快捷键在软件卸载之后还存在,真的是坑。

2024-06-16 15:09:02 451

原创 Java中StringBuilder和StringBuffer区别

其实很好记的,buffer有安全的意思,再或者,王者荣耀里面打了红蓝buff是不是更安全。如果不涉及到并发使用这个对象,直接用。看到有些人不涉及到共享的代码里面用。线程安全,代码都是一样滴,只不过。

2024-05-10 15:21:44 244

原创 CommandLineRunner和ApplicationRunner接口实现类中run方法发生异常导致spring程序关闭

我自己这组的项目也有类似的功能,不过我的实现是通过新建一个线程,在里面编写通知的代码,所以就算报错也不会导致程序关闭,其实我写的时候是不知道这里面抛出异常会导致程序关闭的,只能说碰巧了。接口实现类,这个实现类里面写了一个企业微信通知已经启动的代码,代码中发送了post请求,但是没有用try包裹起来。方法里面就是调用我们重写的run方法,如果调用发生异常,异常会被抛出去。里面的代码比较简单,就是找到实现了那两个接口的bean对象,然后调用。接口的实现类run方法,注意这个方法被try包裹。

2024-05-09 11:52:18 545

原创 java使用trim方法和replaceAll方法去除空格之后,还存在空格

方式之所以去除不了全角空格,是因为String类trim方法里面只去除了半角空格。可以使用hutool工具包里面的StrUtil类,里面的trim方法会去除全角的空格。今天使用其他人的一个功能,发现生成的映射少了一个,后面去代码里面debug发现是字符串中左边空格没有去除导致。查看代码,里面是使用了。两个空格的char值也是不一样的,我们一般输入的都是32的这个。这个代码虽然能去除(半角)空格。,但是不能去除全角空格。字符串.trim()

2024-04-23 15:57:37 434 1

原创 生产使用arthas查看resources目录下面的文件内容

有一次想看resources下面的mapper文件内容(代码执行和预期不一致,所以想排查一下是不是打上去的包有问题,没有通过下载jar的方式解压查看),然后想到了使用arthas来弄,这里记录一下怎么个查看法。

2024-04-16 15:33:37 1170

原创 mybatis自定义日志实现

网上挺多文章是通过mybatis的拦截器来实现的,但是测试发现,sql条数如果过多的话,相比于mybatis原生的输出方式,通过拦截器方式输出日志会对性能有影响。当然,因为mybatis原生的输出级别是debug,在有些情况下可能不适用(比如有的系统只保存INFO、ERROR级别的日志,但又想要保留SQL日志方便排查问题),所以这里通过自定义日志来达到不通过拦截器且能输出日志的目的。

2024-04-16 11:56:53 1657

原创 Java获取调用当前方法的类名或方法名(栈堆信息)的4种方式

在java代码中,是可以在运行时通过某种方式获取到当前方法被谁调用了(调用链路)。目前我所知道的有四种方式(通过Thread、Throwable、SecurityManager获取)

2024-04-15 17:50:57 5223 2

原创 windows系统中计算器里面的b、B、Kb、Kib、KB、KiB等含义

1999年1月,国际电工委员会(IEC)引入了「kibi-」、「mebi-」、「gibi-」等词头以及缩写符号「Ki」、「Mi」、「Gi」等来明确说明二进制乘数计数。上面那些,都是十进制词头,相邻单位之间倍数都是1000,例如磁盘大小1T=1000G,并不是1024G。

2024-04-15 16:11:02 1375

原创 JdbcTemplate query系列方法指定jdbcType类型

这个方法里面会拿到sqlType的类型(就是jdbcType类型,Types里面常量的值)和要设置的值,因为第一个参数使用的是。由于第二个参数没有包装,只是一个字符串,所以会进下面的判断,因为我用的是oracle数据库,所以最后也会调用。这个方法里面会根据类型去判断到底是用PS的什么方法来设置值,比如第一个参数,是设置了。这个方法会判断参数的类型,前面的代码里面,传入的sql占位第一个参数是。方法,因为前面的查询语句是传入了查询参数的,所以会进判断去设置值。,但是如果是其他的数据库,则会调用最下面的。

2023-12-15 18:08:26 364

java反向编译软件jd-gui

使用jd-gui可以轻松的反编译jar文件,可以查看到.java文件的源码,方便学习网上的优秀项目代码。

2019-01-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除