- 博客(92)
- 收藏
- 关注
原创 Spring Boot环境配置
只要我们在Spring Boot 项目中的 pom.xml 中引入了spring-boot-starter-web依赖,即使不进行任何配置,也可以使用Spring MVC 进行 Web 开发。spring-boot-starter-web是一个依赖库,Spring Boot 是在 Spring 的基础上创建的一个开源框架,它提供了 spring-boot-starter-web (web场景启动器)来为web开发予以支持。选择JDK的安装路径,你可以选择自定义一个路径或者安装至操作系统的默认路径当中。
2026-04-04 05:54:12
372
原创 Spring 的三种注入方式?
由于构造方法注入和 set 方法注入可以混合使用,因此,如果需要强制注入,我们可以使用构造方法注入的方式;如果是可选注入,则我们可以使用 set 方法注入的方式。换言之,要是使用属性注入,那么你这个类就只能在 IOC 容器中使用,要是想自己 new 一下这个类的对象,那么相关的依赖无法完成注入。依赖不可变:这个好理解,通过构造方法注入依赖,在对象创建的时候就要注入依赖,一旦对象创建成功,以后就只能使用注入的依赖而无法修改了,这就是依赖不可变(通过 set 方法注入将来还能通过 set 方法修改)。
2026-04-02 06:57:43
347
原创 Nginx如何实现 TCP和UDP代理?
Nginx是一个高性能的HTTP和反向代理服务器,同时也支持TCP/UDP代理。在1.9.13版本后,Nginx已经支持端口转发,包括TCP和UDP协议。Nginx的TCP/UDP代理功能允许它作为一个中间人,接收来自客户端的TCP或UDP请求,并将这些请求转发到指定的后端服务器,然后将后端服务器的响应返回给客户端。通过这些配置,Nginx可以作为一个强大的TCP/UDP代理服务器,适用于多种应用场景,如数据库、邮件服务器、游戏服务器等。
2026-04-02 03:41:20
317
原创 Java面向对象(进阶)
其优点在于他可以隐藏私有数据,让使用者只能通过公共的访问方法来访问这些字段,有利于限制对数据的不合理访问,保护对象信息的完整性。Java接口时一系列方法的声明,是一些方法特征的集合。一个接口只有方法的特征而没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。Java继承是一种使用已存在的类的定义作为基础去建立新类的技术,新类的定义可以增加新的数据或新的功能,也能使用父类的功能。
2026-04-02 00:24:19
24
原创 docker启动redis
redis-server /etc/redis/redis.conf 指定redis在docker中的配置文件路径,后台启动redis。-v /docker/redis/redis.conf:/etc/redis/redis.conf 挂载redis.conf文件。如此一来,redis.conf就设置好了,此时在Linux上创建一个redis文件夹去存放redis的配置文件和持久化数据。-v /docker/redis/data:/data 挂在redis的持久化数据。
2026-04-01 22:41:09
295
原创 解决SpringBoot项目启动错误:找不到或无法加载主类
在开发SpringBoot应用时,经常可能会遇到一个启动错误:“错误:找不到或无法加载主类 com.example.controller.demo.DemoApplication”。本文将介绍三种解决这一问题的方法。
2026-04-01 20:31:54
139
原创 完美解决org.mybatis.spring.MyBatisSystemException nested exception is org.apache.ibatis.reflection.Refl
确认文件中的配置正确无误。确保Mapper XML文件中的SQL语句和映射关系正确。确认实体类的字段和数据库表的列名一致。确认数据库连接配置正确,确保能够成功连接到数据库。确认使用的MyBatis版本与项目的其他依赖版本兼容。通过以上步骤,可以有效解决相关的错误,确保MyBatis在项目中正确使用。如果问题依旧存在,请进一步检查配置文件和依赖版本。以上内容仅供参考,具体问题具体分析,如果对你没有帮助,深感抱歉。
2026-04-01 19:13:15
208
原创 使用 Qt 插件和 SQLCipher 实现 SQLite 数据库加密与解密
SQLCipher是一个开源的扩展,提供了透明的 AES-256 加密功能,使得 SQLite 数据库文件的内容能够被加密和解密。通过将 SQLCipher 与 Qt 结合使用,开发者可以轻松地在 Qt 应用中实现数据加密,确保敏感信息的安全性。在实际应用中,建议进一步优化密码管理机制,避免将密码硬编码在代码中,可以考虑使用更安全的存储方式。此外,根据具体需求,您还可以探索 SQLCipher 提供的更多高级功能,如动态更改密码、密钥派生等。
2026-04-01 05:08:12
414
原创 Tomcat 乱码问题彻底解决
输入chcp 即可查看到当前系统编码方式,(我这里已测试过编码设置)。直接执行“chcp 65001”,即可临时修改当前命令行窗口的编码方式。快捷键 win+R,进入。
2026-04-01 02:02:22
211
原创 Nginx 反向代理之upstream模块以及完整配置反向代理示例
也就是说在一个时刻内,Nginx到上游服务器的空闲的长连接是16个,所谓空闲的长连接就是这个长连接TCP连接接建立着,但是上面没有请求去发送,但这就是空闲的长连接。所以说我们的keepalive后面跟一个connection的这样一个参数,就定义了Nginx和后端的上游服务器可以开启的长连接的一个空闲长连接的最大数量。启用长连接的情形下的话,有很多的并发请求都调度给某一台上游服务器,上游服务器处理完之后,结果都返回给Nginx了。请求到达上游服务器的url: /bbs/abc/test.html。
2026-03-31 02:03:49
186
原创 Linux安装Redis以及Redis三种启动方式
也就是上面我们说的,窗口要一直打开。后台进程启动搞完之后,以后开启redis后,就可以去进行其他操作了(在src目录下 ./redis-server /opt/soft/redis-4.0.6/redis.conf启动redis)。此时Redis服务已经可以成功启动了,但是小问题来了,界面一直停留在Redis服务窗口中,按ctrl+c虽然可以屏蔽服务窗口,但是也会结束Redis服务。./redis-server代表要启动redis,后面一串代码进入redis.conf来开启redis,就是路径。
2026-03-30 11:30:33
318
原创 Java开发的AI应用框架简述——LangChain4j、Spring AI、Agent-Flex
是一个功能丰富、易于使用的Java AI开发框架,特别适合需要快速集成和使用大型语言模型的Java开发者。项目特点多语言模型支持:○ 支持多种大语言模型(LLM),包括OpenAI、Anthropic、Cohere等。○ 提供了统一的API接口,使得切换不同的语言模型变得简单。丰富的功能:○ LLM访问:轻松调用不同的语言模型进行文本生成、对话等任务。○ Prompt定义:提供了灵活的Prompt定义方式,支持动态生成和模板化。
2026-03-30 10:43:27
278
原创 redis安装与部署
将下载好的 redis-6.2.7.tar.gz 安装包上传到虚拟机的任意目录(一般推荐上传到 /usr/local/src目录)。如果是前台启动的话,如果关闭当前会话,则Redis服务也随即关闭,因此这种方式不推荐使用。redis-sentinel:它是 redis 提供的哨兵启动脚本。redis-check-dump:修复有问题的dump.rdb文件。redis-server:它是 redis 的服务端启动脚本。redis-cli:它是 redis 提供的客户端启动脚本。如果没有出错,就会安装成功。
2026-03-30 06:59:52
210
原创 MySQL-触发器(TRIGGER)
例如,对于一张数据表,不能同时有两个 BEFORE UPDATE 触发器,但可以有一个 BEFORE UPDATE 触发器和一个 BEFORE INSERT 触发器,或一个 BEFORE UPDATE 触发器和一个 AFTER UPDATE 触发器。BEFORE 和 AFTER,触发器被触发的时刻,表示触发器是在激活它的语句之前或之后触发。现在触发器还只支持行级触发,不支持语句级触发。注意:当触发器设计对触发表自身的更新操作时,只能使用 BEFORE 类型的触发器,AFTER 类型的触发器将不被允许。
2026-03-30 03:27:36
388
原创 Windows安装Redis图文教程
指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。设 置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。
2026-03-28 11:50:55
227
原创 spring loC&DI 详解
DI:Dependency Injection(依赖注入)。容器在运行期间,动态的为应用程序提供运行时所依赖的资源,称之为依赖注入。IoC 是一种思想,也是"目标",而思想只是一种指导原则,最终还是要有可行的落地方案,而 DI 就属于具体的实现。所以也可以说,DI 是 IoC 的一种实现。
2026-03-28 00:45:45
330
原创 MySQL的索引
索引是对数据库表中一列或多列的值进行排序的。MySQL索引的建立对于MySQL的高效运行是很重要的,索引。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。
2026-03-27 12:41:24
235
原创 docker设置redis密码
这是因为redis设置了密码,我们需要使用密码来进行验证之后再来对redis客户端进行操作,否则我们没有操作redis缓存数据库的权限。
2026-03-27 08:35:59
194
原创 Springboot报错:Lombok annotation handler class lombok.javac.handlers.HandleData failed on Dxx.java
我发现不同模块之间,pom里面写的lombok版本号并不相同,因此想通过修改子模块中pom.xml中的版本号与其他版本号一致,来改掉这个问题。在我重复clean compile install了,并且关了IDEA重启了无数遍以后(这个方法确实有时候是有用的,也不妨试试,全靠运气)我没听,因为那个模块是别人写的,而且有很多个地方都写了@Data,我想:要改岂不是全都要改了?拉了别人一整个大项目的代码,项目里有很多个模块,因为期间互相依赖,所以需要分别启动每个模块的服务。事实证明,不要怕麻烦!
2026-03-26 13:28:07
35
原创 spring-boot-starter-parent 与 spring-boot-dependencies区别
我们平常时开发springboot项目时,pom文件中引入的依赖,总是少不了spring-boot-starter-parent 或 spring-boot-dependencies(仅其一),若未引入,会导致我们的项目缺包,今天我们来探讨一些两者的区别。当我们使用 spring 或 spring-boot 开发项目时,需要引入很多依赖,包括 spring 本身的组件、各种 spring-boot-starter、以及其它第三方依赖(如:slf4j、redis)。
2026-03-26 12:33:30
337
原创 Spring Boot 集成 Kettle
Kettle 最初由 Matt Casters 开发,是 Pentaho 数据集成平台的一部分。它提供了一个用户友好的界面和丰富的功能集,使用户能够轻松地设计、执行和监控 ETL 任务。Kettle 通过其强大的功能和灵活性,帮助企业高效地处理大规模数据集成任务。
2026-03-26 11:37:50
430
原创 Nginx URL Rewrite:灵活的 URL 重写与重定向
它常用于静态资源的处理,例如检查文件是否存在,如果不存在,则重写请求到某个页面(通常是首页或错误页面)。Nginx 支持强大的正则表达式匹配功能,可以用来处理更复杂的 URL 重写需求。Nginx 的 **URL 重写(Rewrite)**功能允许你根据请求的 URL 动态地修改请求路径或进行重定向。当请求的文件或页面不存在时,你可能希望将请求重定向到一个自定义的 404 页面或者首页。:新的 URL,符合规则时,Nginx 会将请求的 URL 重写为这个目标。示例:当请求的文件不存在时,重定向到。
2026-03-26 04:16:00
344
原创 Java学习进阶知识篇
Java面向对象编程的进阶知识在面向对象的世界里,世界万物即对象。对象分为两种一是静态对象(即属性),二是动态对象(方法、行为),比如一只鸟,静态对象就是指鸟的翅膀、重量、羽毛颜色等等,动态对象就是指鸟的飞行、走路、觅食、叫声等等类是一类事物的一个统称,对象是类实例化之后的一类,而整个类就是所有对象的统称、人类可以实例化出一个男人、女人;鸟类可以实例化出一个大雁、燕子、信鸽;图形类可以实例化出三角形、平行四边形、五角形。一个类抽象出来一个实体,然后通过这个实体来解决实际的问题。封装。
2026-03-26 01:10:38
185
原创 SpringCloud 微服务框架
单体架构:将业务全部功能集中到一个项目中,打成一个war包存储,部署在一台服务器中,只有一个数据库优点 :架构简单,部署成本低。适合小型项目问题:高并发性能问题,开发时代码耦合问题,部署升级时停服的问题垂直架构:拆分模块,每个模块使用自己的数据库,如果有模块需要其他模块数据时需要自己查对方模块数据库问题:大量代码冗余,系统难以维护,性能问题,部署问题分布式架构:根据业务功能对系统做拆分,每个业务功能作为独立项目开发,称为一个服务服务之间相互调用,分布式多节点部署。
2026-03-25 23:44:35
309
原创 springboot中@PostConstruct注解使用详解
是 Spring 中用于在 Bean 初始化完成后执行一些初始化逻辑的注解。它通常用于在依赖注入完成后执行一些必要的初始化操作,如资源加载、配置初始化等。相比于其他初始化方式,更加简洁直观,推荐在大多数场景下使用。
2026-03-25 23:00:41
266
原创 spring loC&DI 详解
DI:Dependency Injection(依赖注入)。容器在运行期间,动态的为应用程序提供运行时所依赖的资源,称之为依赖注入。IoC 是一种思想,也是"目标",而思想只是一种指导原则,最终还是要有可行的落地方案,而 DI 就属于具体的实现。所以也可以说,DI 是 IoC 的一种实现。
2026-03-25 22:16:31
384
原创 Spring Boot 实战:轻松实现文件上传与下载功能
总结本文所介绍的 Spring Boot 文件上传与下载功能的实现步骤、关键要点以及注意事项。强调在实际开发过程中,安全性与稳定性是至关重要的因素,需要开发者充分考虑各种边界情况并进行合理的处理。同时,展望未来可能的扩展方向,如与云存储服务集成,实现更强大、灵活的文件管理功能,以满足日益增长的业务需求。
2026-03-25 16:31:14
380
原创 postgresql链接详解
连接基础在探讨PostgreSQL连接的基础之前,我们需要理解什么是数据库连接。数据库连接是客户端应用程序与数据库服务器之间建立的一种通信通道,使用户能够访问和操作数据库中的数据。客户端:发起连接请求的应用程序或工具服务器:接收并处理连接请求的PostgreSQL数据库服务端口号:通常使用默认值5432身份验证:通过用户名和密码确认用户权限连接字符串:包含连接所需的所有必要信息这些基本概念构成了PostgreSQL连接的核心框架,为后续更复杂的连接操作奠定了基础。连接字符串。
2026-03-25 15:17:17
393
原创 存储过程(SQL)
所以要事先用 “DELIMITER //” 声明当前段分隔符,让编译器把两个 “//” 之间的内容当做存储过程的代码,不会执行这些代码。存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。内部变量在其作用域范围内享有更高的优先权,当执行到end时,内部变量消失,不再可见了,在存储过程外再也找不到这个内部变量,但是可以通过out参数或者将其值指派给会话变量来保存其值。
2026-03-24 23:43:19
209
原创 PageHelper 解析及实现原理
面向关系型数据库的 SQL 查询和数据导出时,如果数据条数非常大,直接将所有数据一次性查出或者导出显然是不可行的。这时候就需要进行分页查询或分页导出,将查询或导出的数据按照指定大小分页加载或写入,从而提高查询或导出的效率。而分页查询或分页导出的实现过程比较繁琐,需要考虑很多细节问题,容易出错。因此,出现了一些支持分页查询或分页导出的插件或工具类,例如 MyBatis-Plus 的分页插件 PageHelper。PageHelper是Mybatis-Plus中的一个插件,主要用于实现数据库的分页查询功能。
2026-03-23 10:01:11
170
原创 linux上redis升级
redis-cli -h 192.168.111.100 -p 6379 -a 123123 -n 数据库序号(0-15)#如果是4.* 的就要升级,因为redis6.2 以上需要gcc 9.*的版本,不然make 编译redis时会报错。这里你可以先下载到本地,在通过ftp 的方式上传到服务器,也可以直接 wget 下载。在启动新版的redis 时,可以将数据文件放到启动目录下。-n:指定数据库序号,默认是序号0,redis有16个库(0-15)-a:指定密码,未设置数据库密码可以省略-a选项。
2026-03-23 02:11:09
167
原创 基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
基于QGIS的研究区域遥感影像裁切下载方法-以岳麓区为例。在这篇博客中采用的是Qgis软件,这是 一款桌面端的GIS软件。在这里,首先简单解释一下gis中掩膜的相关概念。掩膜在制图中是一种遮盖工具,用于处理要素在显示上的冲突。掩膜可以理解为一种看不见的面要素,它遮挡住了不需要显示的图形。用这个工具可以将影像按面要素周长裁剪。图层掩膜- 是指在地图或场景中,某一要素图层或掩膜图层可以掩盖另一图层中的任何重叠要素。二是要素级掩膜- 是指按照两图层间关系类所指定的方式对各相关要素进行的掩膜。
2026-03-22 12:07:42
500
原创 保姆级教程教你如何安装Hadoop,实现Hadoop单机(非分布式)配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。运行例子:将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。重新加载,等待加载完成,若加载失败,选择其他中国服务器,再进行加载。点击VM上边的编辑,选择虚拟网络编辑器,点击右下角的。
2026-03-22 11:26:15
333
原创 【经验总结】ShardingSphere5.2.1 + Springboot 分库分表 快速开始
Apache ShardingSphere (本文后续简称“SS”)是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数据库上层的标准和生态。它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。它站在数据库的上层视角,关注它们之间的协作多于数据库自身。ShardingSphere-JDBC 定位为。
2026-03-22 10:45:47
397
原创 windows手动配置IP地址与DNS服务器以及netsh端口转发
在Windows系统中,配置主机的IP地址、子网掩码和网关地址可以通过以下步骤手动设置。这在某些情况下是必要的,例如当你需要确保网络接口使用特定的IP地址或网关时。
2026-03-22 04:21:45
310
原创 RabbitMQ 客户端 连接、发送、接收处理消息
(3) 如果 RabbitMQ 服务收到消息,就转发给 注册接收消息接口的 连接,如果接收的连接标记了 AutoDelete,那么发送给客户端后,RabbitMQ 就会将消息从消息队列中删除。而 RabbitMQ 的消费消息(接收消息) 也仅仅是接收消息,它不管是谁发的消息,只要是发送的 RabbitMQ 服务的消息,它都能接收,注册接收消息,我的客户端就会收到 RabbitMQ 发送过来的消息,消息中包含发送上来的消息内容,还有发送消息的 queue 名字。
2026-03-22 01:10:11
167
原创 MySQL四种备份表的方式
MySQL的备份方式多种多样,不同的备份方式各有优缺点。对于中小型数据库,mysqldump和MySQL Workbench工具较为合适,操作简便,且支持表结构和数据的备份。对于只需要数据导出分析的情况,可以使用语句。而对于大型数据库和实时备份的需求,Binary Log增量备份是一种高效的解决方案。在实际应用中,应根据业务的规模、数据的重要性和恢复时间的需求选择合适的备份方式。同时,定期测试备份的有效性是确保数据安全的关键环节。
2026-03-21 04:31:34
602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅