自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星月昭铭的博客

重新开始 ✌

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

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

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

2024-10-17 09:59:23 637

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

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

2024-09-09 09:52:08 730

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

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

2024-08-29 17:59:52 2508

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

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

2024-08-21 09:19:27 364

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

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

2024-08-08 16:43:08 460

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

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

2024-08-02 11:07:38 1180

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

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

2024-08-01 17:32:28 371

原创 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 487

原创 centos中编译openjdk8

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

2024-07-30 11:18:21 951

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

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

2024-07-08 17:09:14 315

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

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

2024-07-04 11:32:24 318

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

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

2024-06-27 14:14:57 452

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

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

2024-06-16 15:09:02 348

原创 Java中StringBuilder和StringBuffer区别

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

2024-05-10 15:21:44 232

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

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

2024-05-09 11:52:18 448

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

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

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

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

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

2024-04-16 15:33:37 868

原创 mybatis自定义日志实现

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

2024-04-16 11:56:53 1271

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

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

2024-04-15 17:50:57 4177 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 1082

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

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

2023-12-15 18:08:26 264

原创 mybatis与oracle数据库jdbcType类型对应关系

忽略表名和列名😂,这里注意一下这几个NUMBER类型,有的类型其实我建的是INTERGE和DECIMA,但是实际上表建好之后,还是使用的NUMBER,这个有疑惑的可以去百度一下,大概就是oracle数字类型的其实只有NUMBER,其他一些整数类型啥的都是建立在NUMBER上的。之前都是百度上搜的,各种对应的都有,总觉得有问题,最后直接通过跑代码查看了一下对应关系,我用的oracle是19c。oracle中建一张表,多弄一个属性,每个属性一个类型。运行上面的代码,得到的结果截图。

2023-12-14 10:51:02 1876

原创 jackson的@JsonIgnore注解和@JsonFormat注解混用导致不生效问题

最后排查发现,这两个注解不能混用,两个注解同时加上的效果等同于不加。同时加上,既不会被忽略,也不会转换成pattern里面指定的格式,去掉一个注解就行了。昨天新建了一个表,就从别的地方复制了一个实体类,然后给一个时间属性加了了@JsonIgnore注解,发现前端还是能拿到这个被忽略的属性。

2023-10-08 09:34:39 523

原创 Java Swing编写的一个猜拳小游戏

Java Swing编写的一个猜拳小游戏

2022-06-14 11:18:42 483 2

原创 resources新建文件夹原因导致若依mybatis报Invalid bound statement (not found)错误

在使用若依前后端分离版的时候,整合mybatis plus,然后发现自己新建的模块里面写的接口报Invalid bound statement (not found)错误,开始以为是mp的问题,后面发现移除掉mp依然报错,于是我把我写的代码若依自带的模块里面发现还是报Invalid bound statement (not found)。后面仔细比对了发现,原来是在idea resources文件中新建mapper时出了问题(新建的时候直接写了mapper.manager,idea会认为这个文件名就叫map

2021-12-10 09:31:33 1368 4

原创 ArcGIS使用ClassBreaksRenderer(分级渲染)后恢复图层原本渲染的样式

不想看废话的请直接看最后面的加粗部分????在项目中需要根据某个属性值的范围区间来展示不同的颜色,所以就使用了ArcGIS符号渲染中的ClassBreaksRenderer(分级渲染)来实现分级渲染后效果如下:分级之后,需要添加一个恢复原来样式的功能原图:(忽略萍乡市的那个蓝块,因为这是两次不同时期的截图)最开始的时候去官网找,发现没有相关的方法和例子(可能有,只是我没找到????????????),然后百度也没有发现类似的功能代码。所以只能自己在控制台里面慢慢调。一个小时后,找了到解决方案

2021-08-17 09:24:11 1059

原创 使用python的tkinter模块制作一个计算器

使用tkinter模块制作的一个简单的计算器由于刚学这个模块,所以做的不是很好截图:点击计算后算式区的值会改成结果,可自行在数字触发的函数中添加数字输入就进行计算回显的功能代码如下:import tkinter as tkimport tkinter.messagebox as messagewindow = tk.Tk()window.title('不成熟的计算器')# 宽280,高350# 不要设置宽高,大小跟随内部控件# window.geometry('250x280')

2020-12-05 23:32:16 2020 3

原创 戏说python模块

会的人不用浪费时间看了(此篇娱乐性较强,被迫学python的可以看看)模块与包模块模块的概念简单点说一个python文件(够简单了)python文件:不就是那个写着坑人代码的文件例如:张三.py这个(模块)文件可以引入李四.py这个(模块)文件,并且可以使用李四里面的东西(函数等等),这里的张三和李四都是模块,只不过叫做模块而已,为啥叫模块呢,人家写的,想叫啥叫啥,不要纠结。再简单的理解,每一个python文件都是一个模块,哪怕是里面毛代码没有网站上教程的理解如果用 pyth

2020-11-06 00:58:15 233

原创 将uniapp打包成h5放在安卓webview中(解决uniapp引入第三方地图卡顿问题)

本来是使用uniapp进行开发,然后打包成安卓软件的,因为是用了地图模块(基于天地图),然后因为uniapp框架的显示,只能使用webview组件引入地图文件,然后出现一个问题,发现地图在浏览器中打开很流畅,打包成app之后非常卡顿,试了很多种办法,包括把地图放在vue文件中来渲染,发现依然卡,然后想到能不能直接把打包成H5,然后整个文件丢在安卓中,用安卓的webview去打开它,尝试之后发现效果还挺好的,下面列出代码(自己需要啥功能需要自己去添加,可以自行添加腾讯的X5内核)具体步骤Hbuilde

2020-08-11 11:50:36 7611 1

原创 华为手机上获取不到定位信息

项目中用到了webview,然后在H5中用到了定位功能,发现在小米手机上可以定位成功,在华为手机上定位失败。两个手机都是安卓10,因此初步排除了系统版本问题,然后因为项目中是用了腾讯TBS x5内核,所以也不是内核问题,于是就怀疑是H5项目中出现了问题,结果在webview中访问腾讯地图、高德地图一样定位不成功,所以应该也不是H5的问题。检查了一下华为手机是否进行授权了,发现也确实是授权了,无奈最后只能尝试使用安卓原生定位,结果发现运行到了以下语句程序出错了。Location location = loc

2020-08-10 15:06:29 5595

原创 Android studio打包生成apk

演示所用的Android studio版本为4.0.1具体步骤如下:选择Build ——> Generate Signed Bundle / APK…选择生成apk后会弹出一个窗口,选择第二个选项进行apk打包,然后点击next跳到下一步,初次生成apk需要自己创建一个证书,点击cerate new…填好相应的信息 然后点击OK,如果android studio版本挺新的话,点击Ok会弹出一个Error提示框(不是报错了,只是建议把密钥库格式给替换成别的标准),可以忽略,也可以

2020-08-06 11:13:28 2339

原创 最新版nexus3.22.1

某种原因,在官网下死活下不了,然后想法子下载到了本地,放在百度云供大家下载,各个平台的都有,unix就是linux版下载地址:链接: 百度云 提取码: ujid注意:运行之后,登录时,账号是admin,密码在sonatype-work\nexus3\admin.password中,登录成功后此文件会被删除解压到不含中文的路径...

2020-04-28 00:51:25 563

原创 Java使用反射获得主键并且赋值

在项目中突然需要改一个功能,就是把原来的int类型的主键改成varchar类型,主键原来是数据库自动生成,现在要改成后台自动编号,项目使用的是springboot、mybatis,使用了通用mapper。最开始的业务流程是,前台添加一条数据时,传递到后台的bean主键为null,然后使用insert添加数据,主键由数据库自动生成。主键改成varchar之后,需要在后台实现自动编号功能,所以流程就...

2020-04-09 21:05:39 1391

原创 layui子页面中退出登录使父页面跳转到登录页面

在layui的iframe模板中,因为页面都是通过iframe方式引入的,所以在子(iframe)页面中使用location.href = "../user/login.html"后,跳转的页面依然显示在内联框架中,而不是父页面跳转;//parent.location.href = 要跳转的地址,可以时相对地址或绝对地址 例如http://www.qq.comparent.location.h...

2020-01-10 16:59:00 3584 5

原创 layui中table控件使用templet无数据时显示undefined

在使用layui表格控件的时候,因为数据是一个嵌套对象,所以不能直接使用field来获取数据,只能使用templet,但是在使用templet的时候发现,有的字段没有数据时表格就会显示undefined例如上面的字段电话,当字段电话中没有数据时,显示的就是undefined字符串,解决办法就是使用三元表达式给它添加判断,/***typeof d.users.cellphone 判断数...

2020-01-07 10:53:45 6263

原创 layui中的use执行时间

在使用layui框架时,发现直接使用layui.use方法时获取不到dom元素,于是乎就添加了几个方法看一下use的执行顺序直接上代码//jQuery的ready方法,会在window.load事件前执行$(document).ready(function () { console.log("我是ready");});//document.readyState === "load...

2020-01-02 11:22:38 5273 1

原创 windows系统开机显示自定义的字符

windows操作系统可以在开机显示特定的文字闲话不多说,先上图window7设置效果图,win10的是纯色背景,这里就不截图了,因为虚拟机里没有win10系统????具体步骤(win10下的操作 win7的话一样,除了注册表需要自己打开目录)打开cmd(win + R 快捷打开)输入regedit进入注册表编辑器打开下面路径(win10可以直接复制路径 win7自己需要自...

2019-12-20 19:59:09 1164 1

原创 使用servlet和jsp制作一个简单的学生管理系统(简单的增删改查)

项目地址百度云: https://pan.baidu.com/s/1gab1Z9vkQhSMEfeg06rNrQ 提取码: 2dif腾讯微云:https://share.weiyun.com/5Q9Ket0使用的是: MySQL数据库(可以改成别的,自己加驱动包)数据库表student没有用到JavaScript,需要的小伙伴可以自己添加,在前台做处理项目结构(里面都有注释):运...

2019-12-17 15:17:48 5969 12

原创 springboot中使用注解获取前台header信息

今天在写vue时,需要实现一个功能,就是前台通过header(请求头)将token发送到服务端,后台使用的是springboot,第一下想到是springboot注解,但是百度了挺久发现很多人都是使用的原生servlet对象来获取头信息,其实springboot(mvc)中有一个获取请求头信息的注解@RequestHeader()public String addAddress(@Request...

2019-11-30 22:45:13 16023 1

原创 HBuilder X中使用外部Sass命令编译sass文件

本文章的前提是电脑里已经安装好了sass,HBuilderX有编译sass的node插件,之所以不用是发现老出错,而且把软件弄得打不开了,还好,HBuilderX可以自己定义外部命令和插件...

2019-11-15 15:19:59 1812

java反向编译软件jd-gui

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

2019-01-31

空空如也

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

TA关注的人

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