- 博客(35)
- 收藏
- 关注
原创 Spring Boot实现多数据源连接和切换
在 Spring Boot 中实现多数据源连接和切换,可以通过以下几种方案来实现,具体取决于项目的需求、数据库的使用模式和管理的复杂性。以下是一个常见的多数据源切换的实现方案,使用 AbstractRoutingDataSource 来动态选择数据源。创建一个自定义注解,用于指定当前方法执行时需要使用的数据源。// 数据源标识,默认使用primary数据源数据源配置:为每个数据源配置DataSourceBean。动态数据源路由:使用来实现动态切换数据源。ThreadLocal存储:使用。
2026-04-04 05:48:03
167
原创 MySQL输入密码后闪退?
在服务列表中,找到以“MySQL”开头的服务(例如,MySQL、MySQL56、MySQL57、MySQL80等,具体名称取决于你的MySQL版本和安装方式)。有时候,default-character-set=gbk这样的设置可能会导致问题,你可以尝试将其注释掉或删除,然后重启MySQL服务。②修改SQL语法:如果你不想改变MySQL的版本,那么你可以尝试修改SQL查询语句,确保它们符合目标MySQL服务器的语法要求。如果MySQL服务已启动并且你输入了正确的密码,你应该能够成功连接到MySQL服务器。
2026-04-04 02:48:28
200
原创 Spring.factories
在 Spring Boot 项目中,怎样将 pom.xml 文件里面添加的依赖中的 bean 注册到 Spring Boot 项目的 Spring 容器中呢?你可能会首先想到使用@ComponentScan 注解,遗憾的是 @ComponentScan 注解只能扫描 Spring Boot 项目包内的 bean 并注册到 Spring 容器中,项目依赖包中的 bean 不会被扫描和注册。此时,我们需要使用 @EnableAutoConfiguration 注解来注册项目依赖包中的 bean。
2026-04-02 07:06:19
354
原创 Nginx解决前端跨域问题
通过 Nginx 配置 CORS 头部信息,可以有效解决前端跨域问题,允许前端应用从不同的域名、协议或端口请求资源。在配置过程中,需要仔细考虑安全性、性能优化和管理的易用性,以确保跨域请求的安全和高效处理。Nginx 强大的配置能力使其能够灵活应对各种跨域需求,为前端应用提供强有力的支持。
2026-04-02 03:49:23
312
原创 Docker部署Spring Boot + Vue项目
本文的Spring Boot + Vue项目采用若依前后端分离版项目为例,使用Docker部署项目,当然读者如果使用自己的Spring Boot + Vue项目也可以,Docker部署方法一样。
2026-04-01 22:46:49
330
原创 详解 为什么 tcp 会出现 粘包 拆包 问题
TCP 作为字节流协议,天然会遇到粘包和拆包问题。因为 TCP 不关心数据的边界,它只关心字节流的连续性,因此多个应用层的小数据包可能会被合并成一个 TCP 包,或者一个大数据包会被拆分成多个 TCP 包。为了解决这些问题,应用层需要通过定长数据包、消息头+消息体、分隔符或其他自定义协议来明确数据包的边界。
2026-04-01 20:38:25
275
原创 开放自己本机的mysql允许别人连接
需要在左下角搜索记事本应用,右键以管理员身份运行,之后按照上述地址找到my.ini文件,ctrl+F搜索到[mysqld],修改或添加 bind-address 设置,将其更改为 0.0.0.0 或你的计算机的 IP 地址。打开 MySQL 的配置文件 my.ini。username和密码是第3步创建能从远程地址访问的用户和密码,ip地址是ipconfig查看的地址(前提是能ping通,才能连接该地址对应的数据库)。使用 MySQL 命令行连接到自己的数据库,并创建一个能够从远程地址访问的用户。
2026-04-01 19:19:29
197
原创 使用Nginx正向代理让内网主机通过外网主机访问互联网
在企业网络环境中,通常会存在内网与外网的隔离,内网机器无法直接访问外部Internet。而外网机器具有访问互联网的能力。为了让内网机器能够通过外网机器访问互联网,我们可以配置Nginx正向代理来实现。(代理服务器为linux系统,Windows系统中nginx中默认不包含proxy_connect模块,Windows编译proxy_connect模块比较麻烦,可以使用CCProxy代理软件实现,参考外网主机使用CCProxy代理使内网主机上网内网主机。
2026-04-01 05:15:59
395
原创 Ubuntu 系统下安装 Nginx
若发现以下错误,这是因为80端口已经被其他进行占用导致Nginx无法绑定到80端口上,可尝试查询端口占用进程并终止该进程。
2026-04-01 02:10:15
242
原创 Spring 的三种注入方式?
由于构造方法注入和 set 方法注入可以混合使用,因此,如果需要强制注入,我们可以使用构造方法注入的方式;如果是可选注入,则我们可以使用 set 方法注入的方式。换言之,要是使用属性注入,那么你这个类就只能在 IOC 容器中使用,要是想自己 new 一下这个类的对象,那么相关的依赖无法完成注入。依赖不可变:这个好理解,通过构造方法注入依赖,在对象创建的时候就要注入依赖,一旦对象创建成功,以后就只能使用注入的依赖而无法修改了,这就是依赖不可变(通过 set 方法注入将来还能通过 set 方法修改)。
2026-03-31 05:28:06
164
原创 Nginx三种安装方式
上面是一条命令,每行的末尾 表示对命令进行换行, 之后不能有空格。协议, Nginx 的 SSL 模块和其他模块需要。宿主机不存在不存在 nginx.conf 文件,会把。可以下载最新版或稳定版本,建议使用稳定版本。当成文件夹来处理,那么把宿主机的。就是 Nginx 的安装路径。的路径和配置文件的路径要对应。OpenSSL 用来支持。
2026-03-31 02:15:00
363
原创 redis内存突然暴增,排查思路是什么
这种暴增的应该还是上次一个群友说的,更多可能是外部因素导致的,应用新上线,定时任务这些,再有就是cat上查是哪些指令多,以及比对和之前的时间的差异。看是否有定时任务 或者 新上线的活动 ,在看下监控,请求是否暴增,一般这种暴增大概率是某个业务被突然大量调用。通过命令去确定是什么业务引起的,定位问题可能会快一些。
2026-03-30 06:51:30
16
原创 MySQL--》如何在MySQL中打造高效优化索引
2)select_type:表示select的类型,常见的取值有simple(简单表,即不使用表连接或者子查询)、primary(主查询,即外层的查询)、union(union中的第二个或者后面的查询语句)、subquery(select/where之后包含了子查询)等。(有序),在数据之外数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
2026-03-30 03:18:50
350
原创 [已解决]ERROR 1290 (HY000) The MySQL server is running with the --skip-grant-tables 成功解决报错
报错说mysql服务器正在运行不能添加,但是关闭mysql服务器重新登录时会有这个报错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket /var/lib/mysql/mysql.sock(此报错解决方法可参考这篇文章。)解决这个报错是要重启mysql服务,这样就会陷入死循环。这时再进行用户创建和数据库授权IP操作时就会正常进行了。退出mysql,重启mysql服务。这样就可以正常操作了。
2026-03-28 12:03:38
172
原创 Spring 框架——@Retryable 注解与 @Recover 注解
(1)@Retryable注解用于实现方法的重试机制,通常用于处理暂时性的失败,确保在特定条件下自动重试方法调用。它常用于微服务和分布式系统中,特别是在处理网络请求或外部服务时。Class<?Class<?Class<?Class<?Class<?(2)@Retryablevalue:指定要重试的异常类型。可以是多个异常类型,例如。retryFor:另一个方式指定需要重试的异常类型。用法与 value 类似。include。
2026-03-28 00:58:31
400
原创 MySQL:数据查询-limit
LIMIT` 是 MySQL 中一个非常实用和强大的功能,能够帮助控制查询结果的行数,适用于各种场景,尤其是数据分页和结果集限制。对于大多数涉及大量数据的查询来说,合理地使用 `LIMIT` 可以显著改善性能。
2026-03-27 12:53:50
193
原创 Gateway Timeout504 网关超时的完美解决方法
HTTP状态码504表示前端服务器已经收到了客户端的请求,并且知道应该由哪个后端服务器来处理该请求,但是后端服务器没有在预期的时间内完成处理并返回响应。请求跟踪- 在分布式系统中,使用像Zipkin或Jaeger这样的工具来追踪请求在整个服务链中的执行路径。后端服务器过载- 如果后端服务器正在处理大量的请求,可能会导致新的请求被延迟处理,从而引发504错误。检查服务器日志- 查看前端和后端服务器的日志文件,寻找可能的异常记录或错误消息。配置问题- 错误的服务器配置,比如超时设置不当,也可能导致504错误。
2026-03-27 08:48:51
233
原创 MySQL:顿悟了,添加索引时竟然不锁表?
在 MySQL 数据库中,“锁表” 指的是对数据库表进行锁定,以控制对表中数据的并发访问。锁表是数据库管理系统(DBMS)用来维护数据一致性和完整性的一种机制。当某个事务(Transaction)或操作需要对表中的数据进行修改(如 INSERT、UPDATE、DELETE)时,它可能会请求锁定该表或表的一部分,以防止其他事务同时访问或修改相同的数据,从而导致数据不一致或冲突。那么,在创建索引时一定会锁表吗?
2026-03-26 04:07:14
176
原创 java Fx进阶操作
4.方法中的参数 primaryStage 表示的就是当前该程序的舞台对象。**2.**Application 是 JavaFX 程序的入口,任何 JavaFX 应用程序程序都要继承该类并重写 start() 方法。要使用Java编程语言开发GUI应用程序,程序员依赖于诸如高级窗口工具包(AWT)和Swings之类的库。launch 方法会默认执行该类下的 init() 、 start() 、 stop() 方法。使用JavaFX开发的应用程序可以在各种设备上运行,如台式计算机,手机,电视,平板电脑等。
2026-03-26 01:02:14
24
原创 Spring Boot 3.X:Unable to connect to Redis错误记录
IOC容器中的Spring为我们自动配置的RedisConnectionFactory的clientOptions.protocolVersion仍然是null,但是此时Redis已经可以正常连接上了,说明Lettuce 6.5.0已经解决了认证连接bug。这种方法就比较简单粗暴了,既然“spring-boot-starter-data-redis”提供的lettuce依赖版本为6.4,那我们就不用它提供的了,自己引入版本为6.5的lettuce依赖。于是我先去检查了配置文件的连接信息,发现没问题;
2026-03-25 16:23:57
362
原创 PON架构(全光网络)
目前组网架构世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。有线网无线网全光网络方案场景全光网络分类以太全光网络PON(Pas-sive-Optical Network 无源光网络)再典型的中大型高校网络中 推荐万兆入室 千兆到桌面的带宽设计 一般三层 (终端-接入层-汇聚层-核心层-出口(安全设备)-互联网)单校区核心设备 一般采用两台高性能的核心交换机 双机的方式采用的是 M-LAG 多校区之间核心交换机采用100G互联,并为将来升级更大的带宽出口预留汇聚层设备,一般采用高转发能力
2026-03-25 15:09:49
311
原创 【Linux】nmcli命令详解
以往我都是在linux的系统中都是通过配置文件来配置和修改ip的,今天我们就来说一说nmcli命令配置网络。目前所有的linux系统配置网卡等信息,均已经推行Network-Manager服务去管理。nmcli 是 NetworkManager 的命令行工具。nm 代表 NetworkManager,cli 代表 Command-Line 命令行。# 查看运行状态# 启动# 重启# 关闭# 查看是否开机启动# 开机启动。
2026-03-24 14:19:06
329
原创 SpringGateway网关(Spring Gateway是Spring自己编写的,也是SpringCloud中的组件)
早期(2020年前)奈非提供的微服务组件和框架受到了很多开发者的欢迎这些框架和SpringCloud Alibaba的对应关系我们要了解现在还有很多旧项目维护是使用奈非框架完成的微服务架构Nacos对应Eureka都是注册中心Dubbo对应Ribbon+feign都是实现微服务远程RPC调用的组件Sentinel对应Hystrix都是做项目限流熔断降级的组件Gateway对应Zuul都是网关组件Gateway框架不是阿里写的,是Spring提供的"网"指网络,"关"指关口或关卡。
2026-03-24 03:30:31
340
原创 Plugin ‘org.springframework.bootspring-boot-maven-plugin‘ not found的解决方法
尝试使用 VPN 或更换网络环境,然后再次执行 Maven 构建命令。出现这个报错通常是因为 Maven 无法找到相应的 Spring Boot Maven 插件。如果仍然有问题,请提供更多详细信息,例如完整的错误堆栈跟踪和你的 Maven 配置,以便我更好地帮助你解决问题。如果没有,可以将相应的配置添加到父项目的。执行 Maven 的清理命令,然后重新构建项目。这将清除所有已编译的类文件和错误的依赖缓存,并重新下载正确的依赖。如果你的项目是基于父项目的,检查父项目的。
2026-03-23 10:14:06
13
原创 Linux(CentOS)安装 Nginx
CentOS版本:CentOS 7Nginx版本:1.24.0两种安装方式:一、通过 yum 安装,最简单,一键安装,全程无忧。二、通过编译源码包安装,需具备配置相关操作。最后附+:设置 Nginx 服务开机启动。
2026-03-23 02:22:56
382
原创 【MySQL】MySQL Workbench下载安装、环境变量配置、基本MySQL语句、新建Connection
进入网址:MySQL :: MySQL Workbench Manual :: 2 Installation(1)点击“MySQL Workbench on Windows”(下载Windows版本)(2)点击“Installing”(3) 点击链接(4) Download第一个版本(5) 跳过注册登录,直接下载(6)下载后,点击文件,进行安装(7)选择“Custom”(8) 下载三个Products点击“Execute”开始下载:(9)下载完成后,默认Next操作(10)自己设定自己记得住的密码(11)设
2026-03-22 04:56:59
222
原创 Spring Boot(快速上手)
MyBatis是一款优秀的数据持久ORM框架,被广泛地应用于系统,MyBatis 能够非常灵活地实现动态 SQL,可以使用 XML 或 注解 来配置和映射原生信息,能够轻松地将 JAVA 的 POJO(Plain Ordinary Java Object,普通的Java对象)与数据库中的表和字段进行映射关联。RESTFUL 的特点:资源的表现形式是JSON或者HTML,客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都包含必须的信息。
2026-03-22 01:46:52
237
原创 oracle 12c查看执行过的sql及当前正在执行的sql
2.PARSING_SCHEMA_NAME显示的是哪个用户执行的该sql,而不是这个sql操作的表属于哪个schema。当执行新的SQL语句时,如果这条SQL语句不在共享池中,数据库会进行硬解析,并将解析后的执行计划加载到共享池中。如果执行的是共享池内已经存在的SQL语句,则只会进行软解析,LAST_LOAD_TIME的值不会改变。假如同事让排查某个接口都有哪些慢sql,可以使用这个方法(先调用下这个慢接口,然后统计下这个时间段内的慢sql),只是会导出非这个接口的多余慢sql,再结合业务进行筛选吧。
2026-03-21 06:06:34
369
原创 nvm下载安装教程(node.js 下载安装教程)
nvm 是一个 node.js 的版本管理工具,相比于仅安装 node.js,我们可以使用 nvm 直接下载或卸载 node.js,可以同时安装多个 node.js 版本,并动态的切换本地环境中的 node.js 环境版本等,在开发过程中更加的便捷。
2026-03-21 06:05:51
356
原创 【MySQL】详解数据库约束、聚合查询和联合查询
需要满足:使用 GROUP BY 进行分组查询时,SELECT 指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT 中则必须包含在聚合函数中。在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。使用UNION和UNION ALL时,前后查询的结果集中,字段需要一致。GROUP BY 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用HAVING。实际开发中往往数据来自不同的表,所以需要多表联合查询。
2026-03-20 02:39:12
134
原创 SQL Server 2019安装详细教程(图文详解,非常靠谱)
Microsoft SQL Server 是一种关系数据库管理系统 (RDBMS)。应用程序和工具连接到 SQL Server_实例_或_数据库_,并使用(T-SQL) 进行通信。SQL Server Management Studio (SSMS) 是一种集成环境,用于管理任何 SQL 基础结构。使用 SSMS 访问、配置、管理和开发 SQL Server、和的所有组件。
2026-03-20 00:17:45
293
原创 Springboot 3项目整合Knife4j接口文档(接口分组详细教程)
springboot 3开始javax包改成了jakarta,而swagger-oas等包中依然使用的是javax,所以报错。另外springfox已经停止更新有段时间了,并且不支持OpenAPI 3标准,升级Springboot 3.0以后会有更多问题暴露出来。而SpringBoot 3只支持OpenAPI 3规范,因此Spring官网推荐了Springdocspringfox 3.0.0: 同时兼容OpenAPI 2以及OpenAPI 3,但是停更很久了。
2026-03-19 02:38:18
183
原创 Redis6.2.6下载和安装
Redis 是一种开源(BSD 许可)、内存中数据结构存储,用作数据库、缓存和消息代理。Redis 提供了数据结构,例如字符串、散列、列表、集合、带有范围查询的排序集合、位图、超级日志、地理空间索引和流。Redis 内置复制、Lua 脚本、LRU 驱逐、事务和不同级别的磁盘持久化,并通过 Redis Sentinel 和 Redis Cluster 自动分区提供高可用性内容抄自官网。
2026-03-19 00:14:03
229
原创 Plugin ‘mysql_native_password‘ is not loaded`
使用的是基于SHA-1的密码散列算法。SHA-1算法已被认为不再足够安全,存在一定的安全隐患,容易受到撞库攻击和其他形式的攻击。
2026-03-18 12:54:32
44
原创 Nginx URL Rewrite:灵活的 URL 重写与重定向
它常用于静态资源的处理,例如检查文件是否存在,如果不存在,则重写请求到某个页面(通常是首页或错误页面)。Nginx 支持强大的正则表达式匹配功能,可以用来处理更复杂的 URL 重写需求。Nginx 的 **URL 重写(Rewrite)**功能允许你根据请求的 URL 动态地修改请求路径或进行重定向。当请求的文件或页面不存在时,你可能希望将请求重定向到一个自定义的 404 页面或者首页。:新的 URL,符合规则时,Nginx 会将请求的 URL 重写为这个目标。示例:当请求的文件不存在时,重定向到。
2026-03-18 11:40:35
511
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅