- 博客(69)
- 收藏
- 关注
原创 SpringBoot 项目如何使用 pageHelper 做分页处理 (含两种依赖方式)
分页是常见大型项目都需要的一个功能,PageHelper是一个非常流行的MyBatis分页插件,它支持多数据库分页,无需修改SQL语句即可实现分页功能。本文在最后展示了两种依赖验证的结果。
2025-11-02 10:30:20
455
原创 spring-cloud-gateway报错Failed to bind properties under ‘‘ to org.springframework.cloud.gateway
这里是因为PredicateDefinition在添对应的Predicate的时候,根据PredicateDefinition的name取出对应的XXXXRoutePredicateFactory。比如name是Query,那么对应的就是QueryRoutePredicateFactory,如果name是Header,那么对应的就是HeaderRoutePredicateFactory。这里的addArg会有一个key,这里的key必须和XXXXRoutePredicateFactory的对应。
2025-11-02 10:21:58
125
原创 Spring WebFlux:响应式编程
WebFlux提供了一个非阻塞、异步的Web框架,允许开发者构建高性能、可伸缩的 Web 应用程序,特别适合处理大量并发连接,如在微服务架构和云环境中。WebFlux是Spring Framework 5引入的一个重要组件,它代表了Spring对于响应式编程(Reactive Programming)的支持。是Spring WebFlux中用于定义请求路由的函数接口。通过实现,可以精确控制请求的匹配和处理。WebClient。
2025-11-02 09:56:21
988
原创 Spring Boot spring.factories文件详细说明
spring.factories 文件是 Spring Boot 自动配置机制的核心部分之一。它位于每个 Spring Boot 自动配置模块的 META-INF 目录下,用于声明该模块提供的自动配置类、条件性配置类、环境后处理器等。以下是对 spring.factories 文件的详细说明:相信大家的项目中都会写starter,我们团队写的国际化通用和通用聚合服务等即插即用的功能包,就是用的starter。
2025-11-02 09:46:15
640
原创 Redis的优势和特点
Remote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
2025-11-01 12:58:47
808
原创 Redis内存设置
需要注意, maxmemory限制的是Redis实际使用的内存量, 也就是used_memory统计项对应的内存。由于内存碎片率的存在, 实际消耗的内存可能会比maxmemory设置的更大, 实际使用时要小心这部分内存溢出。通过命令修改(重启失效):config set maxmemory-policy allkeys-lru 命令设置内存淘汰策略,config get maxmemory-policy 命令获取当前采用的内存淘汰策略。allkeys-lru:对所有key使用LRU算法进行删除(生产推荐)
2025-11-01 12:43:14
218
原创 RabbitMQ之交换机
在讲交换机之前我们需要了解一些概念,在RabbitMQ工作流程有一项叫Exchange(交换机:消息的分发中心****),它的作用是将生产者发送的消息转发到具体的队列,队列再将消息以推送或者拉取方式给消费者进行消费。**原:**在RabbitMQ中生产者发送的信息不会直接投递到队列中,而是先将消息投递到交换机中,在由交换机路由到一个或多个队列中。流程:生产者 --(路由键)—> 交换机 --(绑定键)—> 队列 --(pull,push)—>消费者。
2025-11-01 12:01:15
698
原创 PHP代码调试(vscode+xdebug+phpstudy)
第一步是配置php的环境变量,csdn里有很多文章可以直接搜索即可了解怎么配置,大概就是将phpstudy里的php文件位置复制到环境变量里,最后使用cmd检查是否配置成功。将php的路径放到此处,该路径就在小皮的Extensions里面。在vscode左侧的拓展处搜索可下载这个php debug。创建这个文件,注意端口号要与小皮里的一致。使用记事本打开配置文件里的php.ini。再点开phpdebug里的json。再点击它设置里的扩展组件。点开文件,首选项里的设置。点开vscode里的调试。
2025-11-01 11:44:20
387
原创 nginx简单命令启动,关闭等
方法一:(1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx),这两个命令的区别在于nginx -s stop是快速停止Nginx,而nginx -s quit是有序的停止Nginx,前者可能会导致数据没有完全保存;方法二可以直接在cmd命令面板上使用,当第一种方法无效时可以尝试使用此方法,方法二适用于大部分版本的Nginx,但是个别版本的可能不实用,使用taskkill就可解决。注意:方法一必须要在Nginx的安装包目录下。
2025-11-01 11:28:33
137
原创 Nginx 反向代理配置
Nginx 作为反向代理服务器,在 Web 服务架构中发挥着至关重要的作用。通过反向代理配置,Nginx 能够帮助分担流量、提供负载均衡、提高安全性、加速请求响应等。本文介绍了 Nginx 反向代理的基本配置方法,以及如何通过负载均衡、SSL 反向代理、WebSocket 代理等功能,进一步扩展其能力。
2025-11-01 11:00:20
625
原创 MySQL的UPDATE(更新数据)详解
MySQL的UPDATE语句是数据库操作中不可或缺的一部分,通过合理使用索引、批量更新、避免全表更新、使用LIMIT以及优化事务,可以显著提高UPDATE语句的执行效率。
2025-11-01 10:39:01
309
原创 mysql占用内存过大问题排查
这个参数决定了 InnoDB 存储引擎缓冲池的大小,它会占用大量内存。#如果数据库中有非常大的表,可能会占用大量内存,过多或不合理的索引也可能导致内存占用增加。如果有长时间运行的复杂查询或者大量未优化的查询,可能会占用大量内存。通过以上步骤的排查,可以找出 MySQL 占用内存过高的原因,并采取相应的措施进行优化。
2025-11-01 10:21:36
755
原创 MySQL中between and的基本用法、范围查询
是支持数值查询的,当字段类型是数值时 between A and B等同于>=A and <=B。not between and表示指定范围之外的值。not between A and B相当于 < A or >B。从上面示例可以看出,还有两条数据时间是在2024-10-30日范围内,但是并没有被查询出来。当between and用于数值查询时,常用于字段类型为int、decimal等。当查询时间范围时要注意可能会遇到时间精度问题,具体参考下面示例。示例:查询年龄不在24到25之间的用户。
2025-11-01 10:04:14
282
原创 MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
通过本文的介绍,你已经学会了如何在 Java 中连接 MySQL 数据库并实现数据交互。数据库连接:使用 JDBC 连接 MySQL 数据库。数据操作:实现插入、查询、更新和删除(CRUD)操作。最佳实践:使用避免 SQL 注入。在实际应用中,建议使用连接池(如 HikariCP 或 DBCP)来提高性能和资源利用率。同时,可以考虑使用 ORM 框架(如 Hibernate 或 MyBatis)来简化数据库操作,提高开发效率。希望本文能帮助你快速上手 Java 与 MySQL 的数据交互!
2025-11-01 09:45:54
373
原创 MySQL---存储过程详解
存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。特点:封装,复用 -----------------------> 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。可以接收参数,也可以返回数据 --------> 再存储过程中,可以传递参数,也可以接收返回值。
2025-11-01 01:55:31
411
原创 App防止恶意截屏功能的方法:iOS、Android和鸿蒙系统的实现方案
1 监听截屏通知:通过UIApplication.userDidTakeScreenshotNotification系统通知实时监测用户的截屏操作行为,该通知会在用户完成截屏操作后立即触发。悬浮窗检测:检查TYPE_APPLICATION_OVERLAY类型窗口,防范第三方截屏工具通过悬浮窗实现截屏。通过设置UIWindowLevel提升窗口层级:将保护窗口置于系统截屏机制的捕获层级之上。不同系统版本兼容性,覆盖iOS 12+、Android 8.0+、鸿蒙2.0+主流版本。
2025-11-01 01:39:36
447
原创 Android.bp
Android.bp是 Android 开源项目(AOSP)中用于替代 Android.mk 的构建配置文件。它的名字 “bp” 代表。目的: 它用于定义 Android 构建系统(Soong)应该如何编译和构建你的模块(例如:一个 App、一个本地库、一个 Java 库等)。语言: 它使用一种非常简单的声明式语言,其语法类似于JSON。它不是一种脚本语言,没有条件判断、循环等控制流语句,它的核心就是声明模块及其属性。诞生背景: 为了克服基于 GNU Make 的Android.mk。
2025-11-01 01:23:03
416
原创 Android UI优化:让你的APP从“卡顿掉帧”到“丝滑如德芙”
如果你是Android开发者,一定听过用户灵魂拷问:“为什么你的APP划起来像在拖砖头?”“这按钮点了半天没反应,手机卡炸了!”——别慌,这不是手机的锅,十有八九是UI优化没做到位。今天咱们就来全方位拆解Android UI优化的秘籍,从布局到绘制,从内存到动画,配上代码手把手教学,保证让你的APP从此“丝滑如德芙”,用户再也不说“卡”!“少、快、省、顺”少:少层级(布局扁平化)、少绘制(避免过度绘制)、少对象(复用资源)。快。
2025-11-01 01:07:11
337
原创 Android Activity 的对话框(Dialog)样式
Dialog 样式主要的风格是 Material 样式和 DeviceDefault 样式。两者的主要区别如下表。Material遵循 Google 的 Material Design 设计预言,强调阴影、圆角、动态色彩和交互动画(如水波纹效果)。继承设备制造商(如三星 One UI、小米 MIUI)的自定义主题,视觉风格由厂商定义。仅支持 Android 5.0+(API 21)从 Android 4.0(API 14)开始自定义灵活性高自定义灵活性低视觉效果一致因厂商而异。
2025-11-01 00:51:26
777
原创 Spring Boot 条件注解:@ConditionalOnProperty 完全解析
是 Spring Boot 中非常实用的条件注解,可以通过配置文件灵活地控制 Bean 和配置类的加载,避免不必要的资源浪费,并提高系统的可维护性。在不同的环境(开发、测试、生产)中,我们可能需要加载不同的配置。在实际项目中,我们可能需要通过配置文件中的某个属性来控制某个功能的启用或禁用。在 Spring Boot 项目中,有时候我们希望根据配置文件中的某个属性值来决定是否启用某个功能或加载某个组件。注解就可以发挥作用。它通过配置文件的属性值控制 Bean 或配置类的加载,使得我们的程序更具灵活性。
2025-10-31 18:13:37
458
原创 Rust 图形界面开发——使用 GTK 创建跨平台 GUI
通过自定义信号,开发者可以实现复杂的交互逻辑。// 创建自定义信号println!");});
2025-10-31 17:53:42
327
原创 redis内存突然暴增,排查思路是什么
这种暴增的应该还是上次一个群友说的,更多可能是外部因素导致的,应用新上线,定时任务这些,再有就是cat上查是哪些指令多,以及比对和之前的时间的差异。看是否有定时任务 或者 新上线的活动 ,在看下监控,请求是否暴增,一般这种暴增大概率是某个业务被突然大量调用。通过命令去确定是什么业务引起的,定位问题可能会快一些。
2025-10-31 17:32:17
234
原创 QoS质量配置
当自定义排队在某个接口上生效的时候,系统将会为这个接口维护17个输出队列。你可 以指定队列1到16。与每一个输出队列相关的是可配置字节总数以及数据包的类型。可 配置字节总数指定在系统移动到下一个队列以前,系统应当从当前的队列中发送多少字 节的数据。编号为0的队列是一个系统队列;在任何编号为1到16之间的队列得到处理以前,编号 为0的队列将先被清空。系统把优先权级别高的数据包,例如保持活动数据包以及信令 数据包,安排到这个队列。其他的通信不能够使用这个队列。
2025-10-31 17:10:22
360
原创 Partition架构
用户的请求保证在同一机房内完成闭环,但部分场景并不适合划分单元化,比如多机房库存扣减问题。【3】增加监控和库存不足告警通知,除了自动资源调配,对活动上线后进行机房间的库存情况实时观测和实时手动调配;【1】业务扣库存逻辑不调整,还是同步扣库存,但事先根据流量分配好每个机房库存;【2】增加库存调配机制,当库存不足时触发库存调配,从有多余库存的机房进行调配;流量比例,扩容成功率恢复后,需要恢复流量比例关系;倾斜,过峰后,因成本因素,恢复原有状态;故障域内收敛,故障会影响整个。故障域内收敛,故障会影响整个。
2025-10-31 16:48:21
312
原创 Nginx更换ssl证书不生效
在用的ssl证书要过期了,申请了新的ssl证书下来,在nginx配置上更换上去后,打开系统地址,一依然是使用原来的旧证书,以前有更换过别的域名证书,重启nginx服务后立马就生效了。这次没生效,看着旧证书还有几天才过期,想着有可能是要等到旧证书过期后,新证书会自动生效,等到了旧证书过期后再看新证书还是没生效,访问系统域名已经提示证书过期了。将新的ssl证书放到一个新目录下(不放在旧证书同目录下)修改nginx的证书配置位置,重启服务,打开系统域名,新的证书生效了。修改配置文件ssl证书路径。
2025-10-31 16:27:00
414
原创 net.sf.jsqlparser.statement.select.Select.getSelectBody()
发生这个问题就是因为Pagehelper中jsqlparser和Mybatis-puls中jsqlparser冲突,以我的项目来说,我项目中的Pagehelper中jsqlparser版本为4.2而Mybatis-puls中jsqlparser的版本为4.9,就导致版本兼容问题。如果你想以Pagehelper中jsqlparser的版本来使用的话,那么项目将启动不起来,就比如拿我的项目来说,如果我在pom文件中添加。你可以提升一下pagehelper的版本 这是maven中央仓库。
2025-10-31 16:05:20
269
原创 MySQL用命令创建数据库以及创建表
在图形管理界面(navicat)可以看到显示的字符集和排序规则。一般创建数据库都会指定数据库的字符集为。用命令登录MySQL数据库。可以看到数据库创建成功。命令选择数据库,显示。就表示数据库切换成功。
2025-10-31 15:42:21
222
原创 MySQL--》深入理解视图、存储过程与触发器的强大功能
(View)是一种虚拟存在的表,视图中的数据并不在数据库中实际存在·,行和列数据来自视图的查询中使用的表,并且是在使用视图时动态生成的。:是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的,其特点是:封装重用;减少网络交互并提升效率。局部变量:是根据需要定义的在局部生效的变量,访问之前需要DECLARE声明,可用作存储过程内的局部变量和输入参数,局部变量的范围是在其内声明的BEGIN…
2025-10-31 14:52:28
300
原创 MySQL Workbench菜单汉化为中文
默认情况下,安装完成的MySQL Workbench的菜单为英文,今天介绍一个简单易操作的方法,将MySQL Workbench菜单汉化为中文。
2025-10-31 14:30:37
282
原创 linux redis简单操作
进入到redis文件下src/bin目录下 将redis-cli 复制到 /usr/local/bin/目录下,让redis-cli指令可以在任意目录下直接使用。2、安装完成后终端输入redis-cli 报 redis-cli -bash: redis-cli: command not found 问题解决。进入到redis/bin目录执行启动命令,其中redis.conf需要写实际的位置,同redis-server目录下时执行以下命令。5、redis有密码的,登录 输入密码。14、redis启动。
2025-10-31 13:48:20
261
原创 美的java面试经验
2 HashMap和HashTable 的区别(线程安全性,扩容机制,初始容量,key为null),继续追问两者在遍历的时候有什么区别?1、Java常见集合的实现方式,说下常用的设计模式,并举例使用到的场景,手写懒加载线程安全的单例模式。4.client调用A 服务,A服务依赖于B服务,在不知道B是否高可用的情况下,怎么保证A的高可用?2、Redis 中的常见数据结构类型,Redis实现持久化的方式,优缺点以及使用场。中涉及的点6、MySQL主备同步的原理,怎么实现高可用?4 Java的多线程用过嘛,答。
2025-10-31 12:01:32
344
原创 最新阿里高级Java面试题(首发,70道,带详细答案)
33、正常情况下,当在try块或catch块中遇到return语句时,finally语句块在方法返回之前还是之后被执行?27、为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?31、什么是检查异常,不受检查异常,运行时异常?38、在Java中,什么是是栈的起始点,同是也是程序的起始点?34、try、catch、finally语句块的执行顺序。29、什么是DoS、DDoS、DRDoS攻击?59、为了解决数据库服务器的负担,如何做数据库的分布?18、什么是https,说说https的工作原理?
2025-10-31 11:16:21
405
原创 如何在 Spring Boot 中配置数据库?
以上就是在 Spring Boot 中配置数据库的基本步骤。通过这些配置,你可以轻松地连接到数据库并使用 Spring Data JPA 进行数据操作。如果有任何问题或需要进一步的帮助,可以在下方评论区留言哟!
2025-10-30 23:00:49
223
原创 如何使用 Python 连接 MySQL 数据库?
在Python开发中,连接MySQL数据库是一个常见的需求。我们可以使用多种库来实现这一功能,其中最常用的是和PyMySQL。下面我将详细介绍如何使用这两个库来连接MySQL数据库,并提供一些实际开发中的建议和注意事项。
2025-10-30 22:56:19
292
原创 基于SpringBoot的旅游网站的设计与实现
JSP技术本身是一种脚本语言,但它的功能是十分强大的,因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时,它可以使显示逻辑和内容分开,这就极大的方便了用户的需求。JavaBeans 可以对JSP技术的程序进行扩展,从而形成新的应用程序,而且JavaBeans的代码可以重复使用,所以就便于对程序进行维护。JavaBean 组件有内部的接口,可以帮助不同的人对系统进行访问。
2025-10-30 22:51:11
283
原创 java逻辑面试题_java学习必备——java逻辑推理面试题
如果右边重,称左边两颗轻球,轻的一个次品。将1000瓶酒分别编号,用十只小白鼠分别代表十位二进制存储,将编号为i的酒换算成十位二进制数表示,为1的位上就喂小白鼠,为0的位上不喂小白鼠,例如3号酒用十位二进制表示为“0000000011”那么就喂最后两只小白鼠喝3号瓶的酒,5号酒用十位二进制表示为“0000000101”那么就喂1号和3号小白鼠喝5号瓶的酒, 一次将1000瓶酒都喂完,等24小时就来收尸吧,死掉小白鼠位置上为1,没有死掉小白鼠位置上为0,将这十位二进制数转换成十进制数就是有毒的酒瓶的编号了。
2025-10-30 12:15:47
349
原创 JAVA进阶 Thread学习06 synchronized关键字
这里就相当于一个类的对象使用了带有synchronized的方法,synchronized锁就锁上了.这个时候其他对象如果需要使用带synchronized的方法就得等待这个对象运行结束.先说说什么是不可重入吧.不可重入就是一个人等完厕所后,上了厕所把门锁上了,然后自己闪现到厕所外并且失忆了,只记得在等厕所.这时候厕所是锁上的自己也进不去,一个对象拥有多个带有互斥锁(同步锁)的方法.其中方法一个方法二都是带有互斥锁的方法,方法二调用方法一.顾名思义,就是可以重新进入自己使用的"厕所".
2025-10-30 11:43:26
468
原创 Java 常见的面试题(设计模式)
*行为型:**Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式),Iterator(迭代模式),Mediator(调停者模式),Memento(备忘录模式),Observer(观察者模式),State(状态模式),Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibility(责任链模式)。**设计模式:**是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。
2025-10-30 11:09:42
364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅