自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(310)
  • 收藏
  • 关注

原创 java中去掉字符串中的特殊符号(杂质),解决方案

在实际业务中,常常会遇到需要把某个字符串中的特殊符号全部去掉,只保留数字、大小写字母、汉字等。(1)从结果输出可以看到,字符串中几乎包含了所有特殊符号,最后都能去除干净,只保留了数字、大小写字母、汉字。去除后结果:我是中文这是数字0123456789字母aABbcd。

2024-07-14 10:36:40 68

原创 springboot项目中使用 @Lazy 注解懒加载解决循环依赖问题,以及 @Lazy 标注顺序

1、示例中 taskServiceImpl 已注入到 groupServiceImpl 中,有循环依赖问题,说明二者业务类中有互相引用注入,你注入我、我注入你。2、此时可以找到被注入的业务类 groupServiceImpl 在此业务类中的 taskService 上标注 @Lazy 懒加载即可。如上示例就是循环依赖引起的报错,往往循环依赖报错只需排查最后一个 Caused by 就行。

2024-06-14 10:28:10 193

原创 maven在setting.xml配置文件中限制某个包不走某个镜像的配置案例

2、而 maven 的 setting.xml 文件配置了阿里云镜像库地址,那么idea会优先走阿里云镜像拉取依赖包,这样就会导致我们自己配置的如上镜像地址不生效,所有要处理指定依赖包使用镜像库优先级问题。*代表所有的依赖包都走阿里云镜像库,*后面逗号分隔的不走该镜像库(优先使用默认项目配置的仓库)1、验证示例,在 ideal 项目的父 pom.xml 文件中,配置了如下指定镜像。

2024-06-11 14:27:46 252

原创 java中 stream()、parallelStream() 的区别对比,forEach()、forEachOrdered() 的区别对比

同样在 parallelStream() 并行流中,forEach()不保证顺序处理,而 forEachOrdered() 可以保证按顺序处理。1、从结果可以看出,stream()为串行流、parallelStream()为并行流。2、parallelStream()是利用多线程进行的,这可以很大程度提高处理效率。3、parallelStream() 示例。2、forEachOrdered() 示例。3、 forEach() 示例。2、stream() 示例。1、 由结果输出可以看到,

2024-05-29 15:42:40 332

原创 windows电脑开机无法进入桌面(黑屏)解决办法

电脑开机后,可以出现输入密码界面,输入密码后或无需密码的,点击登录后进入桌面黑屏没有反应。2、出现选择界面,选择进入安全模式或最后一次系统设置,进入即可。3、如果是比较老旧的电脑,可能连按F11试试,有可能就能解决。1、重启电脑,重启过程中连按F8或者连按F11。

2024-04-29 10:00:00 941

原创 java接口防重复提交简单有效的解决方案

在实际业务场景中,有些关键接口不允许重复多次提交,例如订单提交、xx发布等接口,一旦重复提交可能会导致很多问题,此时就要做接口防重提限制。下面介绍一个简单的方案。1、实现思路,首次请求则设置缓存标识并标记次数为1,随后每次请求只要没达到上限限制数量,则标记次数增量+1,达到上限次数则报错提示。二、创建切面类,拦截处理校验。一、创建防重提专用的注解。

2024-04-28 14:15:00 368

原创 java实现下载图片或视频批量压缩zip包

1、思路,既然选择下载,说明已知文件的地址,所以只需把指定的图片或视频通过地址全部下载下来,放入同一个文件夹中,然后使用 Hutool 的 ZipUtil 对这个文件夹进行压缩即可。实际业务中,经常会遇到对多张图片或多个视频进行批量打包下载,此时就需要把选择的图片和视频进行融合打包压缩,写入到输出流。

2024-04-28 09:56:33 713

原创 java中基本数据类型和引用数据类型有哪些?有什么区别?

3、基本数据类型用 == 和!= 是比较数值的,而 equals() 方法是比较内存地址的)1、基本数据类型是直接存储在栈(stack)中的,而引用数据类型在栈中存储的是一个地址,这个地址指向堆(heap)中的实际数据。2、基本数据类型的默认值是 0 或 false,而引用数据类型的默认值都是null。● String、Integer、Long等都是引用类型。● 整数型:byte、short、int、long。● Java类、接口、数组等都是引用数据类型。● 所有引用类型的默认值都是null。

2024-04-26 15:57:42 252

原创 mysql中日期函数now()和sysdate()的区别

区别:now()获取的是sql脚本执行开始的系统日期时间,sysdate()获取的是sql脚本执行结束的系统日期时间。在mysql数据库中,now()、sysdate() 都是获取系统当前日期时间。1、 now()和sysdate()都可以获取系统当前日期时间。

2024-04-26 15:53:57 474 1

原创 java通过Comparator比较器对集合进行多属性连续分组内升降排序,以及null空值排最前或最后

一、排序数据准备,分别对 one、two、three 三个属性进行连续分组内排序。连续排序,并且把被排序属性值为null的排在最后。连续排序,并且把被排序属性值为null的排在最后。

2024-04-26 12:09:43 317 2

原创 Spring发布订阅机制,应用监听(ApplicationListener)事件(ApplicationEvent)的基本用法

在实际业务中,一些经常重复操作的动作可以交给spring的监听发布事件来处理,写好监听逻辑,需要操作库的时候只需要发布对应的事件即可。3、例如实际业务中对订单有任何变动操作的,需要记录订单变动日志的场景下,可以使用spring的事件监听记录订单变动日志信息。如果多个监听类监听同一个事件类,此时发布一个事件,多个监听类每个都会监听到该事件。一、创建业务事件Bean,并继承ApplicationEvent。1、有监听就有发布,有发布就有监听,相辅相成。2、监听类只能监听相对应泛型Bean的事件。

2024-03-01 14:30:00 213 1

原创 Linux Centos7、Centos8、OpenCloudOS 8系统应用服务调用(上传附件)接口报The temporary upload location [/tmp/tomcat.xxx.8

3、文件上传接口,入参类型为 Multipart(form-data)的方式处理请求时,默认就是在第二个目录(tomcat.xxx.8070)下创建临时文件的(而本次报错的接口刚好就是form-data的入参格式)2、修改 /usr/lib/tmpfiles.d/ 目录下的 tmp.conf 文件,排除清除tomcat开头的目录和文件(系统 /tmp 目录的清理规则取决于 /usr/lib/tmpfiles.d/tmp.conf 文件设定的策略。(治标不治本,不推荐)

2024-02-29 14:30:00 236

原创 java中子类继承父类,重写构造方法、重写抽象方法使用案例及区别

2、子类重写父类的构造方法,父类可以是抽象类、也可以不是抽象类。并且子类构造方法可以对父类构造方法进行参数个数拓展,前提是只能增加参数(不能减少父类构造方法的参数个数)3、子类可以重写父类的抽象方法,重写父类抽象方法的前提为父类必须是抽象类、抽象方法。二、新建一个子类,继承基础抽象类并重写父类构造方法、抽象方法。1、以上写法可以得出,子类可以重写父类的构造方法和抽象方法。一、新建一个基础抽象类。

2024-02-29 10:30:00 494

原创 java中二维数组(String[][])的简单示例

1、其实简单来说,二维数组就是一个数组中,每个元素都是一个数组,即数组包数组。2、由此可见,二维数组其实就是常规的集合中元素又是集合,也就是说。1、二者输出结果一致。

2024-02-01 13:45:00 746

原创 Java中逻辑运算符 | 和 || 的区别

二者都是逻辑运算或的关系,即多条件中任意一个成立,则整个运算逻辑成立。2、|| 则从左向右依次,任意一个成立则终止,不会再运算后面的逻辑。3、| 则从左向右依次,逐个运算全部逻辑。1、|| 和 | 都是或逻辑运算符。

2024-02-01 10:00:00 433

原创 Linux CentOS 8.x、9.x 系统安装启动某些服务报:libtinfo.so.5、libncurses.so.5 的问题,解决方式

1、根据报错内容可以看出,是因为xxx服务在启动的时候加载了 libtinfo.so.5 库文件。此时我们可以查看系统中是否存在该库文件。2、从查询结果中可以看到,现在使用的系统中并没有安装对应的 libtinfo.so.5 库文件,这个时候可以将高版本创建软连接到5版本。1、如果报 libncurses 系列类似的错误,也可以按照此方式解决。2、解决方式基本是一致的。重新启动服务,得以解决。

2024-01-08 14:00:00 1679

原创 解决:CntOS 9安装rpm文件(红帽子包管理)报error: Failed dependencies: libtinfo.so.5()(64bit) is needed by xxx

1、报如上信息,可能是由于rpm程序包不健壮导致。1、上述是报错信息显示为缺少依赖关系包导致的。--nodeps:安装时不检查依赖关系而报错。2、需要在安装时强制忽略错误或警告信息即可。--force:强制安装。

2024-01-08 10:00:00 627

原创 MySql常用函数之 convert()、str_to_date()、date_format()、date()、time()、cast()、to_base64()、from_base64()等使用介绍

3、date()获取日期,time()获取时间,cast()铸造重塑日期时间。1、将日期字符串转换为date、datetime类型。2、将date、datetime转换为日期字符串。2、将日期字符串转换为 datetime 类型。4、将字符串转换为 decimal 类型。1、将日期字符串转换为 date 类型。2、from_base64() 解码。3、将日期转换为 time 类型。1、to_base64() 编码。6、将字符串转换为数字类型。5、将数字转换为字符类型。

2024-01-06 23:59:24 1787

原创 Java中使用 Base64、UrlEncode、URLDecoder 实现对字符串编码、解码

java的 UrlEncode 等效于hutool的 URLEncodeUtil 编码,java的 URLDecoder 等效于hutool的 URLDecoder 解码。【2】使用hutool的 URLEncodeUtil、URLDecoder 可以对路径字符串进行编解码。2、验证hutool的 URLEncodeUtil、URLDecoder 编码和解码。1、验证java的 UrlEncode、URLDecoder 编码和解码。

2024-01-06 19:13:17 1537

原创 Java实现生成普通二维码(输出流和Base64)、小程序二维码(Base64)、获取小程序短链接

1、使用 Hutool QrCodeUtil 工具类生成普通二维码,关键代码。(2)请求微信api地址需要携带query参数 access_token。(2)请求微信api地址需要携带query参数 access_token。(1)成功获取到小程序二维码所需要的Base64码。(1)成功获取到小程序短链接。1、请求微信api示例代码。1、请求微信api示例代码。(2)Base64方式。

2024-01-03 14:00:00 1182

原创 解决java接口使用spring-validation验证入参类型为List校验不生效的问题

由于 List 是接口,无法直接用于参数验证,但可以通过实现类重写 List 接口,把此实现类作为校验dto即可。传空值不可以请求,校验已生效。传空值可以请求,无法验证。

2024-01-03 10:00:00 1666

原创 Java使用 List.stream().map() 或 List.stream().peek() 为集合中元素的空属性设置默认值

2、List.stream().map() 设置过后需要返回值,List.stream().peek() 设置过后不需要返回值。1、List.stream().map() 和 List.stream().peek() 都可以设置属性默认值。3、如果只为了设置属性默认值,例如把null设为0,推荐使用 List.stream().peek()

2024-01-02 14:00:00 1281

原创 Java中 String.format()、MessageFormat.format() 格式化拼接字符串使用介绍

2、MessageFormat.format() 也是格式化作用,但 MessageFormat.format() 使用的是标准占位符,且占位符必须指定参数索引,否则无法格式化。1、Java中的 String.format() 方法是一种格式化字符串的方法,它允许开发人员使用特定的格式将一组数据转换成一定格式的字符串。(2)、%.2f或%.3f 分别对应保留2位小数或3位小数,保留小数自动使用四舍五入规则。(1)、这个例子中,我们使用两个占位符 %tF和%tT,分别代表要格式化的日期和时间。

2024-01-02 10:00:00 866

原创 Java中MDC是干嘛的,有什么作用

Log4j、Logback或者Log4j2等日志中最常见区分同一个请求的方式是通过线程名,而如果请求量大,线程名在相近的时间内会有很多重复的而无法分辨,因此引出了trace-id,即在接收到的时候生成唯一的请求id,在整个执行链路中带上此唯一id.2、上面方式,只能在当前线程中获取到值,因为 MDC 的实现原理就是基于 ThreadLocal,而 ThreadLocal 的主要作用就是只对当前线程有效。MDC.java本身不提供传递traceId的能力,真正提供能力的是MDCAdapter接口的实现。

2024-01-01 18:11:11 1367

原创 java中收集器分组函数 Collectors.groupingBy() 的用法详解

【2】推荐写法二,Collectors.toMap() 会使用 Function.identity() 或 o -> o 确定使用对象,BinaryOperator.minBy()或maxBy() 则用来规定比较属性,例如按分数、id等取最大或最小的那条数据。java的 stream 流是非常重要的特性,在开发中是必备的技能,这里着重分析一下 Collectors.groupingBy() 的各种用法。1、代码示例,在第六步的基础上优化。【1】以上二种写法是等效的。

2024-01-01 15:46:41 2830 1

原创 解决同局域网下无法ping通另一台电脑ip地址的问题

一、打开网络和共享中心-高级共享设置。2、验证成功ping通。

2023-12-24 18:49:08 3786

原创 windows系统连接同局域网下的其他电脑mysql等服务

2、成功连接局域网配置的另一台mysql服务。【3】新建入站规则,设置全部端口或指定端口。3、设置允许访问的入站端口。【1】 防火墙-高级设置。2、设置局域网共享网络。

2023-12-24 18:41:07 1604

原创 解决swagger报:java.lang.IllegalStateException: Ambiguous models equality when conditions is empty

(2)解决(1)问题,需要把当前类中引用的当前dto类型属性和引用当前dto类的其他dto中对应的类型属性隐藏掉(@ApiModelProperty(value = "xxx", hidden = true))例如:aDto、bDto,aDto中引用aDto自己,bDto中也引用了aDto,就会出现出现本次所说的异常现象,此时把aDto中引用aDto自己这个属性隐藏掉,再把bDto中也引用的aDto属性隐藏掉即可。2、把循环引用的两个dto中swagger属性的文档标记为隐藏 hidden = true。

2023-12-21 12:12:21 981

原创 Java使用 String.CASE_INSENSITIVE_ORDER 实现对一组字符串排序或根据首字母升序排序,常用于参数签名

2、比较器 String.CASE_INSENSITIVE_ORDER(Comparator) 默认排序策略是升序,如果需要降序可以设置为降序策略 String.CASE_INSENSITIVE_ORDER.reversed()可以看到 CASE_INSENSITIVE_ORDER 是 String 类中的一个不区分大小写的比较器对象,可以用来对一组无序的字符串进行升序或降序排序。1、从输出结果可以看到,比较器 String.CASE_INSENSITIVE_ORDER 可以对字符串排序,符合预期。

2023-12-18 23:19:14 710

原创 Java中 a++ 和 ++a 有什么区别

(3)所以输出a是完成+1后的结果为2,而赋值给b的值是+1之前a的值。(3)所以输出a是完成+1后的结果为2,而赋值给b的值是+1之后a的值。(2)通过结果输出可以看到,++a 是先把a变量+1然后再使用变量a。2、如果你需要先使用变量的值,再将其递增,那么应该使用a++3、如果你需要先将变量递增,再使用其新值,那么应该使用++a。(2)通过结果输出可以看到,a++ 是先使用变量a后再+1。,先使用a的当前值,然后再将a的值递增1。,先将a的值递增1,然后再使用a的新值。++a是前缀递增运算符。

2023-12-18 22:27:51 891

原创 EasyExcel解决文件读写问题,linux服务器没有安装字体支持而导致出现错误

在使用 easyexcel 进行导出数据时,在 windows和mac 环境中都能正常导出,但在测试环境 linux 服务器上导出报空指针异常,经排查可能是因为 linux 服务器没有安装字体支持而导致报错。由于缺少了 FontConfig 组件。

2023-12-13 00:07:11 918

原创 SpringBoot项目中获取(下载)业务功能的导入数据模板文件

在实际业务场景中,经常会遇到某些管理功能需要数据导入共功能,但既然是导入数据,肯定会有规则限制,有规则就会有数据模板,但这个模板一般是让客户自己下载固定规则模板,而不是让客户自己随便上传模板。下面介绍直接下载模板。1、在项目的 resource 包下创建 template 目录专门用来存放模板文件。2、把模板文件放入此目录中。3、 编写下载模板接口代码。5、成功下载模板文件。

2023-11-18 23:57:44 650

原创 nacos客户端连接服务端报Client not connected, current status:STARTING

降低客户端版本至 1.4.1 就Ok了。nacos服务端版本:v2.1.2。nacos客户端版本:2.1.2。

2023-11-18 04:13:22 735

原创 idea显示pom.xml文件漂黄警告 Dependency maven:xxx:xxx is vulnerable

1、打开idea设置,找到 File | Settings | Editor | Inspections。2、取消上述两项勾选即可。

2023-11-17 23:38:07 4642 4

原创 使用 hutool 工具包的 DesensitizedUtil 脱敏工具类实现对常见信息脱敏

2、除对以上脱敏外,还可以对身份证号、银行卡等进行脱敏,脱敏类参考:DesensitizedType。1、以上是对中文姓名、手机号码、邮箱脱敏。

2023-11-09 00:41:22 690

原创 Naocs配置中心配置映射List、Map、Map嵌套List等方式

【1】@ConfigurationProperties(prefix = "list-json-str") 其中 prefix 的 list-json-str 为配置内容的根节点属性。【2】示例代码中 listJsonStrList、cfTestMap、cfTestMapValForList 是配置类的映射属性。【3】示例代码中 ListByJsonStrDto:映射属性传输类dto,此 dto 内属性与配置内容中的节点属性一一映射。

2023-11-08 23:57:25 1158

原创 使用hutool工具包的 NanoId 类生成纳米字符串(id),以及使用 RandomUtil 生成随机字符串

3、指定长度自定义字符随机字符串,代码示例。2、使用自定义基础字符,代码示例。1、指定长度随机字符串,代码示例。2、指定位随机数字符串,代码示例。1、使用默认基础字符,代码示例。

2023-11-08 23:56:15 1026

原创 java使用stream流把集合中元素的属性空值赋值为0,BigDecimal类型属性使用reduce()自定义运算符,避免计算的时候导致报错

3、BigDecimal类型的属性可以使用 .reduce(new BigDecimal(0), BigDecimal::add) 方法进行逻辑运算。1、把集合元素中属性的空值赋值为0,需要开启实体类或dto类的 @Accessors(chain = true) 链式写法。2、stream()后面可以连续map绘制,如 stream().map().map().map()计算结果:30.35。

2023-11-07 23:23:11 1663

原创 使用 Hutool 的 StrUtil 工具对字符串颠倒翻转,以及其他常用工具类使用记录

1、可以使用 DateUtil.offset() 指定抵消(年月日或时分秒)2、正数是获取之后的日期,负数是获取之前的日期。

2023-11-07 23:14:42 420

原创 java验证 Map 的 key、value 是否可以为空

3、Map中 key、value 也可以同时为 null。1、从结果看,Map中 key 可以为 null。2、Map中 value 也可以为 null。

2023-11-07 23:00:55 1668

空空如也

空空如也

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

TA关注的人

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