自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 解决idea 启动后CPU飙升的问题

快速定位IDEA 启动后CPU飙升问题,对症下药,让idea继续成为我们最趁手的开发利器!

2022-07-19 17:17:39 18110 7

原创 JAVA输入任意一个数,判断是否是回文数

**JAVA输入一个数,判断是否是回文数**回文数“回文”是指正读反读都能读通的句子,回文数顾名思义就是正反都顺序一致的特殊数字,所以我们首先要做的就是确定输入数字的个数。 String s = String.valueOf(num);//将数字转换为字符串,方便后期处理 long t ; int count=0,flag = 1; while(num!=0){ t ...

2019-05-13 20:35:56 8783 9

原创 打破双亲委派模型的实践:JDBC与Tomcat的深度解析

JDBC和Tomcat都通过打破双亲委派模型解决了特定的类加载问题,本文将进行详细的描述

2025-05-23 15:38:24 1696

原创 深入解析Java类加载机制:双亲委派模型

Java类加载机制中的双亲委派模型是一种重要的安全机制,确保类加载的层次性和一致性。其核心思想是类加载器在收到加载请求时,首先委派给父类加载器处理,只有在父类加载器无法完成时,子加载器才会尝试加载。这种机制通过启动类加载器、扩展类加载器和应用程序类加载器的层级结构,有效防止核心类库被篡改,避免类重复加载,并保证类型安全。尽管双亲委派模型是标准机制,但在某些特殊场景(如SPI、OSGi框架、热部署)下需要打破该模型。实际应用中,自定义类加载器时应注意保持双亲委派模型,并警惕类加载器隔离和内存泄漏问题。

2025-05-23 15:33:05 1062

原创 Linux安装kafka教程

快速搭建linux环境下,kafka和zookeeper,搭好环境才能让一切变得顺畅!!!

2025-04-09 12:12:48 744

原创 自定义 KeyGenerator 的编写与使用

方法中执行复杂计算(如数据库查询),否则可能抵消缓存带来的性能提升。,可以灵活控制缓存键的生成逻辑,避免默认策略的局限性。如果方法有多个参数,需明确处理参数组合逻辑。)下唯一,避免覆盖其他方法的缓存。确保生成的键在相同缓存名称(

2025-03-05 17:23:19 973 1

原创 从 Linux 服务器到前端到网关到后端业务逻辑的分析

在现代 Web 应用程序的架构中,一个完整的请求处理流程涉及多个组件,涵盖了用户界面、服务器环境、网关层和后端业务逻辑。理解这一过程有助于优化系统性能、提高用户体验,并确保系统的可维护性和可扩展性。本文将详细分析从 Linux 服务器到前端,再到网关,最终到后端业务逻辑的完整流转过程。

2025-02-25 17:46:11 1182

原创 Linux下安装rabbitMQ

下面是一个详尽的RabbitMQ安装与配置指南。这包括从下载到配置的每一个步骤,供您在CentOS 7环境下进行部署。

2024-11-12 16:16:56 659

原创 【Java】Spring事务失效的原因及解决方案

然而,有时会遇到事务失效问题,导致预期的操作未能按计划提交或回滚。在这篇博客中,我们将探讨常见的事务失效场景及示例代码,帮助您快速识别并解决问题。自调用是指同一个类中,一个方法调用另一个带有事务注解的方法。由于Spring的AOP是在代理对象上工作的,这种直接调用不会应用事务。通过意识到这些常见错误,可以避免事务相关的问题,提升应用的稳定性和可靠性。调用事务性方法,由于跳过了代理对象,事务配置将被忽略。:确保配置了正确的事务管理器,并与数据源相连接。如果未启用使用注解驱动的事务管理,事务不会生效。

2024-11-12 14:46:23 850

原创 【Redis】基于redis实现订阅发布

业务发展过程中,希望做到异步解耦,但是又不想引入MQ中间件,在中小型服务中,就可以考虑使用redis自带的订阅发布来解决这个问题。使用 Redis 实现消息的订阅和发布时,可以通过 Spring Boot 集成 Redis 来方便地实现。

2024-11-09 11:08:13 1393

原创 Java异常处理:深入理解与实践

在Java编程中,异常处理是确保程序健壮性和稳定性的关键机制。它允许程序在遇到预期或意外情况时,能够优雅地处理错误,而不是立即终止运行。本文将深入探讨Java异常处理的核心概念、实践技巧以及最佳实践,帮助读者更好地理解和应用这一机制。Error和Exception。Error:表示严重问题或系统级错误的基类。这些错误通常是由Java虚拟机(JVM)本身引起的,例如内存溢出()、堆栈溢出()等。程序通常无法恢复或处理这些错误,因此它们不需要在程序中显式处理。Exception:表示可检查异常的基类。

2024-10-29 20:50:50 656

原创 File类踩坑记录

有一天运维突然告诉我,生产服务器下面的目录文件满了,我表示一脸蒙,去服务器一看,才发现确实是非常多的文件,那这个是怎么产生的呢?我们一起来研究一下。在Linux中,可以使用命令行工具来删除指定类型的文件。操作时要非常小心,最好先用。注意彻底删除后,文件将无法恢复。

2024-10-29 20:37:29 735

原创 深入解析Java中的锁

在Java多线程编程中,锁是实现线程安全的重要工具。它们帮助我们保护共享资源,从而避免数据竞争和不一致性。在这篇博客中,我们将深入探讨Java中的各种锁机制及其应用场景。

2024-10-25 10:57:56 1132

原创 深入剖析MySQL的索引机制及其选型

索引是数据库中的一种数据结构,允许高效地查找到特定的行。它类似于书中的目录,可以快速定位到相关信息,而无需扫过整个表。索引是提升MySQL性能的重要工具,不同类型的索引适用于不同场景。聚簇索引适合范围查询,非聚簇索引提供了灵活性,而全文索引则为文本搜索提供了便利。在实际使用中,了解索引的特性和优缺点,以及合理选择和优化索引,能够显著提高数据库的效率。

2024-10-25 10:45:41 1388 1

原创 MySQL常见优化策略

通过合理的索引设计、查询优化、表结构设计及适当的配置调整,可以显著提高 MySQL 的性能。针对具体的应用场景和需求,选择合适的优化策略和工具,能为系统的稳定性和用户体验提供有力保障。不断监控和迭代优化是确保数据库性能的关键。📈✨。

2024-10-18 17:38:48 773 1

原创 Java学习之 状态机 机制

在现代软件开发中,业务流程的复杂性不断增加,如何有效地管理不同状态之间的转换成为了一个重要课题。状态机(State Machine)是一种有效的工具,能够帮助我们清晰地定义和管理这些状态及其转移,尤其在Java开发中,其应用广泛。本文将探讨Java状态机的定义、应用场景及如何解决并发问题。状态机是一种设计模式,用于表示计算机系统的状态以及状态之间的转移。状态机由多个状态、事件和状态转移规则构成,能够清晰地描述系统在不同状态下的行为。

2024-10-18 17:26:21 969

原创 【Java】基于Swagger实现接口混淆

因为你开发的接口要给人对接,那么对于前端来说,就需要看到正常的请求参数才可以,你加了混淆,没有通知到前端,那么请求参数肯定是不对的,所以就利用了swagger可以生成文档的特性来处理这个混淆的生成。要做接口安全设计,保护后端接口安全的安全性,还可以针对接口的请求响应做改变,比如将原本的参数改为一个映射后的值,请求参数先去解析再转成我们的对象,保证我们的接口的含义不能被外部轻易理解,进而维护接口的安全。我们使用的是Ruoyi框架,所以基于Spring security,只需要注册我们的拦截器就可以了。

2024-07-15 15:37:40 658 1

原创 接口安全设计之接口验签

最近接到一个需求,在海外客户还款之前,都是通过一个还款链接去还款,但是还款链接内没有任何的客户信息,所以需要还款之前,进入一个前置信息确认页面,就需要后端先提供一个查询接口给前端,但是需要参数明文传递给前端,其中包含订单号,金额及还款类型。在原本的请求链接不变的情况下,加一个sign参数,针对当前参数进行签名,在请求后端的时候,需要先验证签名,如果验签不通过,则直接返回error,否则认定参数没有被修改,继续生成还款链接。当请求到达后端之后,去查询当次请求的参数,然后去生成真实的还款链接给客户还款。

2024-04-02 15:12:29 1167 1

原创 基于logback实现日志链路追踪

基于logback MDC实现自定义日志链路追踪

2024-03-13 15:30:18 1895

原创 【Java】java基础知识整合

Java虚拟机是一个可以执行Java字节码的虚拟机进程,Java源文件被编译成可以供Java虚拟机编译的字节码文件,Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者重新编译,Java虚拟机让这个变成可能,因为它知道底层硬件平台的指令和其他特性JDE和JRE的区别是什么JRE :Java运行时环境,是将要执行的Java程序的Java虚拟机,同时也包含applet需要的浏览器插件,JDK:是完成的Java软件开发包,包含了JRE,编译器和其他工具。

2023-05-07 16:39:11 666

原创 解决MyBatis < collection >标签造成分页异常问题

解决MyBatis 标签造成分页异常问题

2022-04-18 17:04:08 5797

原创 支付宝 ACQ.TRADE_NOT_EXIST 解决方案

支付宝 ACQ.TRADE_NOT_EXIST 解决方案

2022-02-10 18:35:54 2881

转载 【无标题】

记一次解决IDEA导致CPU 100%卡顿的解决方案转自:https://www.jianshu.com/p/ac72a14afc24修改配置参数:#堆栈设置-Xms4096m-Xmx4096m-Xmn3072m-XX:MetaspaceSize=1024m-XX:MaxMetaspaceSize=1024m-XX:+AlwaysPreTouch-XX:InitialCodeCacheSize=1200m-XX:ReservedCodeCacheSize=1200m-XX:+UseC

2022-01-20 15:27:31 197

转载 SpringBoot中Service实现类添加@Service却任然无法注入的问题

搞了我半天的东西,竟然失误在了@MapperScan这个注解上,难搞。下面那位老哥和我的问题一模一样。https://www.cnblogs.com/Jerryoned/p/13138559.html

2021-06-09 14:54:40 1522

原创 记一次数据源配置问题

问题背景数据库由单体改为主从结构,部分数据需要从从库读取,所以加入了动态数据源配置-Dynamic动态数据源配置,引入了以下依赖:<!--动态数据源配置--> <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <ver

2021-06-04 19:19:59 324

原创 谷歌邮箱无法显示使用 Base64 处理的图片的正确解决方法

谷歌邮箱无法显示使用 Base64 处理的图片的正确解决方法前文本次做了一下邮件发送,邮件中包含自定义模板和logo,初始logo使用的是url地址,但后期思考,如果地址失效或者网络问题等则会导致logo无法显示,于是乎就将logo改为了base64的形式,本以为天衣无缝,结果遇到了google邮箱,src属性直接丢失。这里经过查询是因为,Google不兼容base64形式的编码头且路径必须使用https开头,那怎么办呢?可以使用静态文件的形式,发送文件。1、为了使得代码不要重复修改,将插入图片文件

2021-01-27 11:10:08 8579

转载 Java细节:字符串的拼接

Java细节:字符串的拼接工作日忙于项目的逻辑实现,周六有点时间,从书柜里拿出厚厚的英文版Thinking In Java,读到了字符串对象的拼接。参考着这本书做个翻译,加上自己思考的东西,写上这篇文章记录一下。不可变的String对象在Java中,String对象是不可变的(Immutable)。在代码中,可以创建多个某一个String对象的别名。但是这些别名都是的引用是相同的。比如s1和s2都是”droidyue.com”对象的别名,别名保存着到真实对象的引用。所以s1 = s2fileos:

2020-12-30 15:11:13 235

原创 CSV踩坑大全

之前做了好几个关于CSV文件下载的接口,真的是踩坑无数啊!今天有时间在这里把所踩的坑都总结一下,避免以后出现问题。众所周知,CSV其实就是一个文本文件,占用的空间很小,行与行之间使用 ','分割,可以用Office打开,那这么简单的一个东西会有什么问题呢?数字变成科学计数法如果数字超过15位后,它的第16位及以后的位数都会变成0,怎么解决呢?那就是把他变成文本。 /** * 字符串处理和赋值 * * @return */ public String

2020-12-21 19:53:15 736 3

原创 list为null,但是list.size() = 1解决方案

今天写代码遇到一个很奇怪的问题,那就是我使用SQL查询的结果为null,当把结果用一个list接收的时候,出现了NPE,我明明已经做了非空校验啊然后百思不得其解,先使用了一个较笨的方案。。。解决方案1:java代码:if (!list.isEmpty()) { if (list.get(0) != null) { //todo }}但是这种方式,不太靠谱,为什么呢?因为如果你的list中包含多个数据,而你不知道他给了你的null的数据,毕竟list.add(null)可以有多次执行的

2020-10-22 19:46:59 10043 4

原创 【MySQL】Subquery returns more than 1 row 最全解决方案

【MySQL】Subquery returns more than 1 row 解决方案原因:子查询出现多条数据数据解决办法: * 检查sql确保子查询只会返回一条数据 * 如果是多行数据,就不能使用=,可选择in * 添加any方法,但是注意any,all方法必须与一个比较操作符一起使用 * limit 1(根据业务来定,不推荐)...

2020-09-21 17:09:18 12019

原创 java学习-深克隆与浅克隆

深克隆与浅克隆详见代码:import lombok.AllArgsConstructor;import lombok.Data;/** * clone的要求 实现CloneAble接口 修改clone方法为public,然后覆写clone方法 * 分类:深克隆与浅克隆 * 浅克隆:实现对对象中的 基本数据类型与引用类型地址的复制 * 效果:基本数据类型全复制 引用数据类型 对引用对象地址进行复制 当clone对象修改后,如果修改了引用类型,则会修改到原本的对象, * 这样的做

2020-09-14 14:47:45 467

原创 java螺旋矩阵的设计与实现

java螺旋矩阵的设计与实现所谓螺旋矩阵就是矩阵的走向是类似于旋转的方式,而我们要做的就是生成这么一个旋转路径,遍历并赋值给矩阵中的每一个元素。分析:我们先生成一个空数组,那么其 所有值都为0,然后我定义起始位置(此处需要注意的一点就是你所要的起始位置一定是可以走出去的,否则就会进入死循环,其次你的路径可以随意修改),此处让他按照→↓←↑的方式运动,判断的依据就是当前位置的下一经过路径为0,结束时间就是我们的值的终值就是行乘列。public class SpiralMatrix { publ

2020-09-11 09:38:05 785

翻译 Error attempting to get column ‘upload_time’ from result set.: Cause: java.sql.SQLException:不支持的类型

Error attempting to get column ‘upload_time’ from result set.: Cause: java.sql.SQLException作为一个菜鸟,今天遇到这么一个问题,真的是万万没想到啊!问题的解决方法这么简单!!!问题叙述:数据库表字段 upload_time为datetime类型,接收实体类对应属性为LocalDateTime类型。开始报...

2020-04-05 00:14:33 1299 3

原创 超详细的mysql主从复制教程

MySQL主从复制1、复制概述Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送...

2020-01-14 17:36:03 903 1

mysql 8.0 linux安装包

mysql 8.0 linux安装包 rpm安装包

2020-12-24

空空如也

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

TA关注的人

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