- 博客(46)
- 资源 (2)
- 收藏
- 关注
原创 Spring.factories
在 Spring Boot 项目中,怎样将 pom.xml 文件里面添加的依赖中的 bean 注册到 Spring Boot 项目的 Spring 容器中呢?你可能会首先想到使用@ComponentScan 注解,遗憾的是 @ComponentScan 注解只能扫描 Spring Boot 项目包内的 bean 并注册到 Spring 容器中,项目依赖包中的 bean 不会被扫描和注册。此时,我们需要使用 @EnableAutoConfiguration 注解来注册项目依赖包中的 bean。
2026-04-21 08:22:07
343
原创 RabbitMQ HAProxy 负载均衡
前面我们学习了 rabbitmq 搭建集群,并且为了解决集群中队列的高可用问题,使用仲裁队列替代普通的队列,但是其实这里还有一个问题,就是我们在使用 Java 连接 rabbitmq 的时候,需要指定 rabbitmq 服务的 IP 和端口号,如果该端口号绑定的 rabbitmq 服务挂掉了,那么我们的 Java 程序是否还能够访问到呢?在RabbitMQ集群中,如果所有客户端都连接到同一个节点,该节点的网络负载会显著增加,而其他节点则可能处于空闲状态,造成资源浪费。
2026-04-21 06:05:00
549
原创 java进阶--多线程学习
并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。并发是逻辑上的同时发生,而并行是物理上的同时发生。并发是指一个处理器同时处理多个任务。
2026-04-21 01:31:00
156
原创 【FFmpeg】H.264 格式分析 ② ( 网络抽象层单元 NALU NALU 功能结构 VCL 视频编码层 NAL 网络提取层 H.264 封装模式 - annexb 模式 )
NALU ( Network Abstract Layer Unit , 网络抽象层单元 ) 是 H.264 视频编码 中 用于 封装 编码后数据 的 基本传输单元 , 用于将 视频数据 以适合 网络传输的格式 组织起来;NALU 是 对 原始视频帧 进行编码后的数据单元 , 它们 包含了 视频数据 的 编码信息 , 如 图像帧的编码数据、控制信息 等;
2026-04-19 19:52:08
200
原创 SpringBoot项目中读取resource目录下的文件(六种方法)
查找资源,所以如果不加“/”表示去根路径查找的话,是找不到的。源码里还是方法三、方法四,只不过做了一些封装,更方便开发。的getResource()是从。的getResource()是。查找的,所以不加“/”也可以。2)启动jar包指令。
2026-04-19 17:03:58
162
原创 Spring boot创建时常用的依赖
1.springboot项目的总(父)依赖大全<parent></parent>当我们使用 spring 或 spring-boot 开发项目时,需要引入很多依赖,包括 spring 本身的组件、各种 spring-boot-starter、以及其它第三方依赖(如:slf4j、redis)。依赖多了,版本的选择是个问题,就怕哪个版本选择的不对导致出现一些意想不到的 BUG。spring-boot-dependencies的作用主要是起到约束版本的作用,在这个包里面声明了各种版本号,供子项目去引用。
2026-04-19 14:24:22
192
原创 Node.js NativeAddon 构建工具:node-gyp 安装与配置完全指南
Node.js NativeAddon 构建工具(node-gyp)是一个基于 Node.js 的跨平台命令行工具,专用于编译 Node.js 的原生插件模块。它内部封装了源自Chromium团队使用的 gyp-next 项目,并针对 Node.js 模块开发进行了扩展。值得注意的是,node-gyp 不用来构建 Node.js 自身,而是专注于让开发者能够轻松地在不同的操作系统上编译原生模块。这个工具支持多种版本的 Node.js,并自动匹配对应版本的开发文件。JavaScript 和 C/C++
2026-04-19 11:36:16
197
原创 MySQL 教程(超详细,零基础可学、第一篇)
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 是开源的,目前隶属于 Oracle 旗下产品。MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL 使用标准的 SQL 数据语言形式。MySQL 可以运行于多个系统上,并且支持多种语言。
2026-04-19 03:06:23
623
原创 解决no main manifest attribute错误
程序运行的入口是main方法,当我们使用java Hello命令,虚拟机就可以根据Hello.class文件中的main方法,来运行程序。JAR(Java Archive)文件是一种打包文件格式,它允许你将多个 Java 类文件、相关的元数据和资源(如文本、图片等)打包到一个单一的文件中,以便于分发和部署。元数据主要指的是清单文件(MANIFEST.MF) ,这是一个可选文件,用来提供关于jar文件的额外信息。这里的程序打包是使用的maven,那就使用maven的插件来完成就好了!
2026-04-18 07:50:01
193
原创 分布式与集群,二者区别是什么?
举一个例子:假设有一个在线商店,它包含订单处理、库存管理和支付处理等多个功能。在传统的单体应用程序中,所有这些功能都由一个应用程序处理。但在微服务架构中,我们可以将每个功能拆分成一个独立的服务,例如订单服务、库存服务和支付服务。这些服务可以独立开发、测试、部署和扩展,同时通过网络协议进行通信和协作。这样,当其中一个服务出现问题时,我们只需要处理该服务,而不需要影响整个应用程序。这就是微服务架构的优点之一。
2026-04-18 05:27:01
231
原创 【MySQL】数据基本的增删改查操作
使用时应谨慎,确保对删除将产生的后果有清晰的认识。2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分。语句有效地修改MySQL数据库表中的数据,并根据需要灵活地指定更新的条件及列。下面将详细描述各类查询方式,包括全列查询、指定列查询、条件过滤等。下面将详细描述其用法。语句,可以更新数据库表中已存在的数据。: 如果你只想插入部分列的值,没提供的列将会使用默认值或者。: 可以在一次操作中插入多行数据,且只指定想插入的列。这些运算符可以组合使用,以构建复杂的查询条件。
2026-04-18 03:02:40
267
原创 Spring之FactoryBean详解
Spring中有BeanFactory接口,也有FactoryBean接口。注意不要混淆两者。《Spring之BeanFactory详解》
2026-04-18 00:40:12
228
原创 Redis数据库
能够存储数据、管理数据的一种软件。根据数据不同的特点,选择不同的数据库进行存储。一个项目中也可以使用多个数据库。Redis就是一个数据库,但是与传统数据库不同的是,他的数据是存在内存上的,因此读写速度快。
2026-04-04 04:55:34
346
原创 MySQL中DROP、TRUNCATE和DELETE
操作影响范围删除方式事务支持性能触发器外键约束支持自动增长重置可恢复性DELETE删除表中的数据逐行删除支持较慢支持支持不重置可回滚TRUNCATE删除表中的所有数据批量删除不支持较快不支持不支持重置不可回滚DROP删除整个表删除表及数据不支持非常快不支持不支持无不可回滚。
2026-04-04 01:55:45
399
原创 Springboot报错:Lombok annotation handler class lombok.javac.handlers.HandleData failed on Dxx.java
我发现不同模块之间,pom里面写的lombok版本号并不相同,因此想通过修改子模块中pom.xml中的版本号与其他版本号一致,来改掉这个问题。在我重复clean compile install了,并且关了IDEA重启了无数遍以后(这个方法确实有时候是有用的,也不妨试试,全靠运气)我没听,因为那个模块是别人写的,而且有很多个地方都写了@Data,我想:要改岂不是全都要改了?拉了别人一整个大项目的代码,项目里有很多个模块,因为期间互相依赖,所以需要分别启动每个模块的服务。事实证明,不要怕麻烦!
2026-04-02 08:01:34
63
原创 RabbitMQ 客户端 连接、发送、接收处理消息
(3) 如果 RabbitMQ 服务收到消息,就转发给 注册接收消息接口的 连接,如果接收的连接标记了 AutoDelete,那么发送给客户端后,RabbitMQ 就会将消息从消息队列中删除。而 RabbitMQ 的消费消息(接收消息) 也仅仅是接收消息,它不管是谁发的消息,只要是发送的 RabbitMQ 服务的消息,它都能接收,注册接收消息,我的客户端就会收到 RabbitMQ 发送过来的消息,消息中包含发送上来的消息内容,还有发送消息的 queue 名字。
2026-04-02 04:44:05
355
原创 MySQL 批量插入详解:快速提升大数据导入效率的实战方法
批量插入是提高 MySQL 数据插入性能的重要手段。通过使用批量插入技术,可以显著减少 SQL 执行次数,提高数据导入的效率。本文通过一个学生信息表的实战示例,详细介绍了批量插入的实现方法,并提供了性能优化的建议。希望这篇文章对您在处理大规模数据时有所帮助。如果有更复杂的数据处理需求,您还可以考虑使用 MySQL 的LOAD DATA语句或专门的 ETL 工具来进行数据导入操作。
2026-04-02 01:27:38
355
原创 Java进阶-在Ubuntu上部署SpringBoot应用
通过以上步骤,你可以在 Ubuntu 上成功部署 Java 应用,使用 Nginx 配置反向代理,确保应用能够高效稳定地提供服务。同时,借助 systemd,你还可以方便地管理应用的启动、停止及日志记录,确保服务的高可用性。
2026-04-01 23:31:53
296
原创 禁止使用存储过程
存储过程是指为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户可通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行。存储过程在数据库技术中属于一种服务端编程方式,是一组预编译的SQL语句集,常用于对数据库进行操作、控制和管理。存储过程通常包括流程控制语句、数据操作语句、变量的定义和赋值、条件判断语句等,可以在执行过程中接受参数输入,并返回查询结果。
2026-04-01 20:09:59
374
原创 基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
云南,这个位于中国西南边陲的省份,以其独特的地理位置和丰富的民族文化而闻名。作为中国连接东南亚和南亚的重要门户,云南拥有长达四千多公里的边境线,与缅甸、老挝和越南三国接壤。这条边境线不仅是中国对外开放的前沿,也是维护国家安全和地区稳定的关键地带。随着全球化的深入发展和区域合作的不断加强,云南边境线的战略地位日益凸显。云南的边境线总长达到4060公里,是中国边境线最长的省份之一。这条边境线没有天然物理屏障,地势错综复杂、犬牙交错,有的是山高林密、荆棘丛生,沼泽密布、河水湍急。
2026-04-01 06:08:17
378
原创 SpringBoot创建动态定时任务的几种方式
Quartz是一个功能强大的开源任务调度框架,支持复杂的任务调度需求,如任务的持久化、分布式任务管理、基于数据库的调度等。通过Controller提供API接口,这里的TaskService调用了QartzService的对应接口,并做了一个写数据库读写操作,主要记录定时任务状态、执行记录信息的等。通过TaskScheduler,你可以灵活地安排任务的执行时间,并且可以在运行时动态地创建、取消任务。然而,它的灵活性较差,对于复杂的任务调度需求,或需要动态调整任务时间的场景,可能并不适用。
2026-03-31 06:21:55
421
原创 PostgreSQL常用时间函数与时间计算提取示例说明
主要用于计算一些特殊时间,函数说明截断成指定的精度,第1个参数指定精度select date_trunc('year',now()) as 当年第1天,date_trunc('year',now() + interval '1 year') - interval '1 day' as 当年最后1天,date_trunc('month',now()) as 当月第1天,
2026-03-31 03:08:52
426
原创 macOs安装docker且在docker上部署nginx+php
v ~/project/nginx/conf.d:/etc/nginx/conf.d 将主机的 ~/project/nginx/conf.d 目录挂载到容器的 /etc/nginx/conf.d。-v ~/project/www:/usr/share/nginx/html 将主机的 ~/project/www 目录挂载到容器的 /www。–link myphp:php 将 myphp 容器的网络并入 nginx 容器,实现容器间的通信。如果想将docker内的文件与docker外的文件相关关联。
2026-03-30 02:26:11
440
原创 【Spring Boot】Spring AOP中的环绕通知
Aspect Oriented Programming(面向切面编程)AOP是Spring框架的第核(第核是IoC)AOP是一种思想,是对某一类事情的集中处理。其中在下面的学习中我们会学习到拦截器、统一异常处理,统一结果处理等,这些都是运用了AOP的统一思想来实现的。拦截器实现AOP思想作用的维度是前端对后端进行的一次请求和一次响应,主要是检索前端传来的URL,如果检索后返回True,则可以进入Controller开始执行代码,如果返回的为False,则表示失败,直接被拦截在外面,无法执行代码。
2026-03-28 13:23:58
239
原创 SpringBoot的@Scheduled和@Schedules有什么区别
对于更复杂的需求,比如调整线程池大小或者设置线程名称前缀等,你可以通过自定义来进行配置。Spring提供了几种内置的调度器实现,如和。@Override@Override@Override// 自定义异常处理逻辑。
2026-03-28 09:16:23
240
原创 Plugin ‘mysql_native_password‘ is not loaded`
使用的是基于SHA-1的密码散列算法。SHA-1算法已被认为不再足够安全,存在一定的安全隐患,容易受到撞库攻击和其他形式的攻击。
2026-03-27 14:14:28
52
原创 Linux 下安装 Golang环境
原文链接:https://blog.youkuaiyun.com/super_xyo/article/details/128210788。go modules 模式下,可以不配置GOPATH,默认【/root/go】国内镜像官网:https://golang.google.cn/如果之前已经安装过go的版本,先清空下go,不然可能会报错误。6. 查看golang版本,测试是否配置成功。标准官网:https://go.dev/Linux 下安装 Golang。获取Golang下载地址。获取Golang下载地址。
2026-03-27 10:08:42
269
原创 Nginx 生成、配置SSL证书&让浏览器信任证书
注:-extfile private.ext -extensions SAN 是指告诉OpenSSL从private.ext文件中读取[SAN]下扩展的定义,并将其应用到正在生成的证书中。下面 以上文 “模拟CA机构方式生成证书(生成证书方式二,推荐)” 方式安装CA证书到本地,让浏览器信任证书。注:在访问网站使用的IP或者域名,必须是 subjectAltName 下指定的域名或者IP。正常情况下,用浏览器访问自签名的证书网站,那么浏览器会提示当前网站不安全,证书不受信任。安装证书,让浏览器信任证书。
2026-03-25 05:14:25
230
原创 MS SQL Server 实战 统计与汇总重复记录
如图可以看出,统计汇总结果清晰的反映出了重复记录的情况,即 count(title)>1 的 ct 字段值,值大于1 的表示该题目出现的个数。另外命令结果增加了4个行,包括单选题统计共 248 题,多选题统计共 113 题,判断题统计共 293 题,总数统计共 654 题。主要是通过 case when 语句对 title 字段进行判断 ,为NULL值的表示汇总行,则进行 isnull(etype,‘总数’)+‘统计情况:’ 的字符串拼接,etype字段为 NULL 值的表示总数的统计行。
2026-03-25 02:39:13
177
原创 【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
是 Oracle 11g 中用于修改和删除表中数据的重要 SQL 语句。在操作时,需特别注意数据筛选条件的准确性,以避免意外更改或删除数据。是管理数据表中记录的核心操作,其灵活性和强大功能使其在日常开发中被广泛使用。但在操作时需特别小心,确保筛选条件准确并采取必要的备份与验证措施,以避免因误操作造成数据丢失或不一致。用于更新表中的现有数据,可以更新单行或多行记录,需结合。对关键表进行更新或删除前,建议备份数据,尤其在生产环境中。,将删除表中的所有记录,但表结构仍然保留。可返回更新或删除的行数据。
2026-03-24 14:55:46
254
原创 SQL Server导出和导入可选的数据库表和数据,以sql脚本形式
3. 如果只需要导出部分表,则选择第二项**“选择具体的数据库对象(Select specific database objects)”**,并勾选表;1. 打开SQL Server Management Studio,在需要导出表的数据库上单击右键 → 任务 → 生成脚本。1. 如果导出的脚本文件较小,可以直接双击文件,在SQL Server Management Studio里执行。如果同时需要导出表结构和数据,就从右上角的**“高级(Advanced)”5. 之后,连续点击下一步,直到完成。
2026-03-24 05:08:11
274
原创 Spring Boot spring-boot-maven-plugin 参数配置详解
默认情况下,repackage目标将使用可执行的构件来替代原始的构件。如果希望保留原是构件,并且也使用不同的分类来附属保留可执行的构件,可以配置如下:说明:如果不适用repackage目标,那么maven执行package命令生成的jar包只有一个,名称为pom.xml里面配置的name(artifactId)-version.jar。
2026-03-23 11:47:11
348
原创 MySql中的事务、MySql事务详解、MySql隔离级别
思考:我去银行给朋友汇款,我卡上有100元,朋友卡上50元,我给朋友转账50元,如果我的钱刚扣,而朋友的钱又没加时,网线断了, 怎么办(Transaction)是数据库管理系统(DBMS)中的一个核心概念,它确保了一系列数据库操作要么全部成功,要么全部失败,从而维护数据库的完整性和一致性。MySQL在5.5版本开始,就将InnoDB引擎作为默认存储引擎。由于Mysql中的事务是存储引擎实现,而且只有InnoDB支持事务。
2026-03-23 03:47:41
401
原创 【MYSQL】连接报错Public Key Retrieval is not allowed
如果您控制 MySQL 用户的创建方式,可以使用 mysql_native_password 身份验证插件来避免这个错误。对于运行 MySQL 8.0 或更高版本的服务器,可以考虑修改 MySQL 配置,使默认身份验证插件为 mysql_native_password。找到并编辑 MySQL 配置文件(通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf)。hostname: 您的 MySQL 服务器地址。方法 3: 修改 MySQL 配置文件。方法 2: 更改用户身份验证方法。
2026-03-22 05:22:14
71
原创 Springboot中CommandLineRunner的用法以及执行顺序的控制
在 Spring Boot 应用程序中,所有实现了 `CommandLineRunner` 接口的 `@Component` 类的 `run` 方法并不是严格保证顺序串行执行的。在这个示例中,通过 `@Order` 注解设置了 `FirstRunner` 和 `SecondRunner` 的执行顺序,`FirstRunner` 的 `run` 方法会在 `SecondRunner` 的 `run` 方法之前执行。这使得开发人员能够方便地在应用程序启动后执行一些必要的操作。// 在应用程序启动后执行的逻辑。
2026-03-22 02:12:53
234
原创 redis批量删除namespace下的数据
在开发中为了更好的管理数据,对redis进行了分组存储操作,在存值时加了命名空间来实现,如下:@Cacheable的value来实现分组。在批量获取数据时也需要加上namespace的前缀。
2026-03-21 07:14:55
32
原创 Redis开启远程连接
在实际应用中,Jedis实例我们一般都是通过连接池来获取,由于Jedis对象不是线程安全的,所以,当我们使用Jdeis对象时,从连接池获取Jedis,使用完成后,再还给连接池。在Jedis中,由于方法的API和Redis的命令高度一致,所以,Jedis中的方法见名知意,直接使用即可。使用Lettuce,首先创建一个普通的maven项目,添加Lettuce依赖。对于Jedis而言,一旦连接上redis服务端,剩下的操作就很简单了。改完之后,保存退出,启动redis。项目创建成功后,添加Jedis依赖。
2026-03-21 07:14:16
245
原创 【Spring】IDEA中创建Spring项目
鼠标放在SomeService上Alt+Enter,快捷键创建接口实现类—SomeServiceImpl一路ok??
2026-03-20 03:28:35
384
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅