- 博客(95)
- 收藏
- 关注
原创 Java进阶之多线程
(2)synchronized方法控制对“对象”的访问,每个对象对应一把锁,每个synchronized方法都必须获得调用该方法的对象的锁才能执行,否则线程会阻塞,方法一旦执行,就独占该锁,直到该方法返回才释放锁,后面被阻塞的线程才能获得这个锁,继续执行。如果是模拟出来的多线程,即在一个cpu的情况下,在同一时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错觉。线程同步:就是一种等待机制,多个需要同时访问此对象是线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程在使用。
2026-01-07 23:03:54
508
原创 JavaEE要想学得好,【Java spring】少不了,稳扎稳打学JavaEE
spring 的初识: 认识spring 是一种功能强大, 开发人员用起来很轻松, 开发效率高效的面向企业的应用程序框架。如何学好spring : 学好spring 的关键就在于: 如何使用Maven建立spring项目, 并且学会利用注解依赖注入数据调用等… 来操作spring的特定的框架来进行 web 开发。spring 项目的学习工具: 学习spring主要是围绕着http请求来的, 搭配postman能够方便的建立http请求的相关配置,达到更高效的开发。如果觉得小编写的还不错的咱可支持三连。
2026-01-07 22:15:05
297
原创 Go-Gin Web 框架完整教程
Go 语言(或称 Golang)是一个开源的编程语言,由 Google 开发。在开始使用 Gin 框架之前,我们需要先安装 Go 环境。无法连接到 Go 的默认代理服务器。Go 项目的工作效率很大程度上依赖于正确的环境变量配置。Go 模块是 Go 管理依赖的方式。首先,我们需要创建一个新的项目目录。一个好的项目结构能够提高代码的可维护性和可读性。Gin 是一个用 Go 语言编写的 Web 框架。这里 my-gin-app 是项目名称,你可以根据自己的需求修改。如果显示 Go 版本号,说明安装成功。
2026-01-07 21:57:25
416
原创 Docker 之mysql从头开始——Docker下mysql安装、启动、配置、进入容器执行(查询)sql
1. 启动镜像,这里面最后的“:latest”是根据步骤一中“1”截图中的版本来的,可根据自己情况输入。启动容器的同时将/data/yueshen5/codeProgram/KG-2.2-C中的文件挂载到容器中的/data目录下。1. 在系统目录下创建并运行脚本文件mysqllatest.sh,输入命令sh mysqllatest.sh。mysql -u root -p密码 #mysql没有任何含义,这只是进入mysql的必须命令。use mysql;以下命令是没有挂载操作的命令,如需挂载如上述命令所示。
2026-01-07 21:37:54
606
原创 如何在MySQL中计算两个日期的间隔天数
表示从2024年1月到2024年12月相差11个月(注意结果是负数,因为第二个日期在第一个日期之后)。在MySQL 5.7中,计算两个日期之间的间隔天数是一项常见的任务。计算两个日期/时间之间的差异,可以指定单位(如天、月、年)函数允许你指定日期和时间单位来计算差异,这里我们使用。函数可以直接计算两个日期之间的天数差异。函数专门用于计算两个日期之间的。计算两个日期之间的天数差异。计算两个日期之间的月份差异。下面是一个表格,对比了。
2025-12-01 22:20:07
180
原创 【SpringBug】lombok插件失效,但是没有报错信息,@Data不能生成get和set方法
原因是Spring官方进行了升级, 在创建项目时添加lombok依赖的话, 会自动引入一个插件(之前没有, 新增的), 把这个插件删了就可以了。可以看到我们在类UserInfo上写了@Data注解,但是在测试文件中生成的反编译target文件Us二Info中没有get和set方法。去Maven库里引入版本更高的依赖。设置完点apply,在ok。设置完点apply,在ok。
2025-12-01 20:21:18
260
原创 sql中COALESCE函数详解
在SQL中,COALESCE函数是一个非常有用的函数,用于从其参数列表中返回第一个非NULL值。如果所有给定的参数都是NULL,那么COALESCE函数将返回NULL。这个函数可以接受多个参数,使其在处理可能出现的NULL值时非常灵活和强大。
2025-12-01 18:06:57
229
原创 SpringBoot实现图形验证码
目录项目创建前端代码实现约定前后端交互接口需求分析接口定义Hutool工具实现服务器端代码引入依赖获取验证码验证码校验调整前端代码随着安全性的要求越来越高,目前许多项目中都使用了验证码,验证码也有各种类型,如 图形验证码、短信验证码、邮件验证码、人脸识别等,这些不同类型的验证码可以根据实际需求和安全性要求进行选择和应用,保护网站和用户免受恶意攻击在本篇文章中,我们来学习图形验证码的实现验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用 Hutool
2025-11-30 21:33:15
831
原创 Redis队列和阻塞队列
普通的redis队列,为了实现业务,通常会使用while进行循环,这样的话没有消息时依旧会频繁的执行循环,造成cpu的空转,所以一般会在代码中增加sleep来解决该问题,但因此又会造成消息延迟问题。使用 BRPOP 这种阻塞式方式拉取消息时,还支持传入一个「超时时间」,如果设置为 0,则表示不设置超时,直到有新消息才返回,否则会在指定的超时时间后返回 NULL。redis队列提供了 “阻塞式” 拉取消息的命令:BRPOP / BLPOP,这里的 B 指的是阻塞(Block)。下面是某业务完整的消费者代码。
2025-11-30 18:53:01
229
原创 NapCatQQ+Springboot基于onebot协议实现qq机器人
由此可以看出 NapCat 是类似于中间件的东西,也可称之为框架,这里我们就称之为qq机器人框架,本文章中介绍的都是集成版,无需手动安装QQ。
2025-11-30 16:55:40
1066
原创 MacOS升级ruby版本
但是如果我们使用“ruby -v”查看版本,发现使用的还是MacOS自带ruby版本是2.x。homebrew安装的ruby版本号可以通过“brew info ruby”命令参看。MacOS自带ruby版本是2.x,可以通过“ruby -v”查看版本号。如果没有安装,可以“brew install ruby”进行安装。或者通过“brew install ruby”进行升级。再次使用“ruby -v”查看一下版本。
2025-11-30 15:00:41
169
原创 一、安装Redis(win11环境下)
在用户变量或者系统变量中找到“Path”关键字,并点击添加redis路径。图1-1 网页Redis版本选择。找到“Redis”,右键“属性”图1-2 redis目录下。图1-4 电脑系统信息页面。图1-3 命令窗口运行。图1-5 系统属性页面。点击“高级系统设置”
2025-11-30 01:22:48
132
原创 Spring Boot集成Kafka:最佳实践与详细指南
本文详细介绍了如何在Spring Boot项目中集成Kafka,并通过最佳实践和代码示例来指导你。通过合理配置Kafka、使用KafkaTemplate发送消息、使用@KafkaListener接收消息以及处理错误和监控,你可以轻松地构建高效、可靠的消息处理系统。希望本文对你有所帮助!
2025-11-29 20:06:33
516
原创 NapCatQQ+Springboot基于onebot协议实现qq机器人
由此可以看出 NapCat 是类似于中间件的东西,也可称之为框架,这里我们就称之为qq机器人框架,本文章中介绍的都是集成版,无需手动安装QQ。
2025-11-29 17:25:13
831
原创 Java语法进阶
一、Object类、常用API二、Collection、泛型三、List、Set、数据结构、Collections四、Map与斗地主案例五、异常、线程目标:1、说出进程的概念2、说出线程的概念3、能够理解并发与并行的区别4、能够开启新线程4.1 并发与并行4.2 线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。进程:线程是进程
2025-11-29 14:46:38
594
原创 超详细MySQL,含下载安装配置环境变量,基础代码
1.这一步和MySQL5.X版本的有很的大区别,在这一步我们不多进行解释,直接选择“Custom(自定义)”,方便我们把MySQL安装到非系统盘。安装完成后会在系统的开始菜单下出现左图所示的程序,随便打开一个,输入之前设置的密码。查看在搜索界面已经下载的root登录界面点击进入MySQL。输入密码后,出现右图的界面,表示MySQL正常。注意:创建表之前要打开库,要在库的目录下对表操作。然后输入“exit”,退出MySQL。注意一定要选第二个!一直点击确定即可完成配置环境变量。6.设置root密码。
2025-11-29 04:24:02
255
原创 从 SQL 语句到数据库操作
在 MySQL 中创建一个新的数据库时,会在文件系统上为该数据库创建一个对应的目录。这个数据库通常包含了与该数据库相关的、所有表的数据文件、索引文件、以及其它文件。: 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。删除表中的一个字段时,该字段及其对应的所有数据都将被永久删除。不同的存储引擎可能会以不同的方式组织这些文件。: 用于添加、删除、更新数据库中的数据。
2025-11-29 01:50:44
374
原创 SQL多行数据合并到一行中的一个字段
在SQL中,将多行数据转换为一行数据通常涉及到使用聚合函数和字符串函数。这种转换在数据库中被称为“行转列”或“透视”操作。
2025-11-28 23:16:31
275
原创 Spring Data 什么是Spring Data 理解
Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性。它使数据访问技术,关系数据库和非关系数据库,map-reduce框架和基于云的数据服务变得简单易用。这是一个伞形项目,其中包含许多特定于给定数据库的子项目。这些项目是通过与这些激动人心的技术背后的许多公司和开发人员合作开发的。: 致力于减少数据访问层(DAO)的开发量。开发者唯一要做的,就只是声明持久层的接口,其他都交给Spring Data JPA 来帮你完成!
2025-11-28 20:31:52
398
原创 Nginx 常用安全头
Web 应用中配置 HTTP 安全响应头是提升网站安全性的重要一步。合理配置 Nginx 的安全头,可以抵御常见的安全威胁(如 XSS、点击劫持、MIME 类型嗅探等),增强用户隐私保护和传输安全性。:限制资源(如脚本、样式、图片等)的加载来源,防止 XSS 和数据注入攻击。<object><embed>iframe注意事项:如果需要加载第三方资源(如 CDN),需显式添加来源。避免使用和,减少 XSS 风险。
2025-11-28 17:52:58
291
原创 Java语法进阶
一、Object类、常用API二、Collection、泛型三、List、Set、数据结构、Collections四、Map与斗地主案例五、异常、线程目标:1、说出进程的概念2、说出线程的概念3、能够理解并发与并行的区别4、能够开启新线程4.1 并发与并行4.2 线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。进程:线程是进程
2025-11-27 10:43:46
235
原创 使用 Certbot 为 Nginx 自动配置 SSL 证书
删除证书:sudo certbot delete --cert-name name_of_certificate。在写配置文件时只需写80端口,Certbot会自动添加443端口的监听以及SSL证书的配置。Certbot将自动与Let`s Encrypt的服务器通信,验证域名,请求SSL证书。列出所有Certbot管理的证书:sudo certbot certificates。运行Certbot自动安装SSL证书。若自动更新失效,Lets Encrypt会在证书失效前发邮件提醒。
2025-11-26 22:24:54
383
原创 【Python】Flask与Django对比详解:教你如何选择最适合你的Web框架
Flask是一个微型的Web框架,由Armin Ronacher在2010年开发,旨在让开发者能够快速搭建Web应用。Flask的设计哲学是“简洁而不简单”,它提供了核心功能,同时允许开发者根据需求自由添加扩展。这种灵活性使得Flask在许多项目中表现出色,尤其是在需要高度自定义的场景下。Django由Adrian Holovaty和Simon Willison在2005年创建,旨在让开发者能够快速构建功能齐全的Web应用。
2025-11-26 21:16:14
304
原创 SpringSecurity相关jar包的介绍
Spring Security是spring采用AOP思想,基于servlet过滤器实现的安全框架。它提供了完善的认证机制和方法级的 授权功能。是一款非常优秀的权限管理框架。Spring Security主要jar包功能介绍。
2025-11-26 18:56:35
330
原创 SpringBoot3 集成 Shiro
是一个强大且易用的Java安全框架,提供了身份验证、授权、密码学和会话管理等功能。它被广泛用于保护各种类型的应用程序,包括Web应用、桌面应用、RESTful服务、移动应用和大型企业级应用。没有Spring Security 那么多晦涩的概念和术语,其原理非常清晰易懂,也非常容易集成到自己的项目中。SpringBoot 2.x 已于去年底End of life,升级到 SpringBoot 3 成了一件必须要做的事情,而SpringBoot 3 在集成 Shiro 时,有一些坑,也有一些与之前不同之处。
2025-11-26 17:45:26
223
原创 使用Django Rest Framework构建API
在本指南中,我们深入探讨了使用Django Rest Framework (DRF) 构建Web API的五个关键步骤:环境设置、数据序列化、视图与路由配置、安全性和权限设置、以及测试和文档生成。每一步都是构建强大、安全且易于维护的API的关键组成部分。环境设置确保了您的项目有正确的基础架构。数据序列化是处理数据输入输出的核心,关系到数据的标准化和国际化。视图与路由配置定义了API的行为和URL结构,直接影响到API的用户友好度和可扩展性。安全性和权限。
2025-11-25 16:28:55
320
原创 【Spring Boot】 SpringBoot自动装配-Condition
Conditional注解在Spring4.0中引入,其主要作用就是判断条件是否满足,从而决定是否初始化并向容器注册Bean。@Conditional注解定义如下:其内部只有一个参数为Class对象数组,且必须继承自Condition接口,通过重写Condition接口的matches方法来判断是否需要加载BeanClass<?
2025-11-25 15:20:00
385
原创 windows10安装redis数据库,并设置开机自启动
windows安装redis是很简单,属于开箱即用的。下载安装包,将安装包解压后,启动服务端,启动客户端就可以操作了。
2025-11-25 14:04:35
199
原创 Spring之FactoryBean详解
Spring中有BeanFactory接口,也有FactoryBean接口。注意不要混淆两者。《Spring之BeanFactory详解》
2025-11-25 12:53:17
424
原创 Springboot-配置文件中敏感信息的加密:三种加密保护方法比较
本文介绍三种方式。我们可以自定义加解密算法来实现数据的加解密,这里采用AES算法。工具类的代码省略。建议用第三种方式,因为这种加密算法可以自定义,并且不需要把加解密的秘钥放到配置文件里,即便有人拿到配置文件,也无法得到真实的密码,更加的安全。而且第三种方式对业务代码没有侵入,也不需要特定引入第三方库和配置其他东西。
2025-11-25 11:27:04
575
原创 Spring Boot 整合 Keycloak
本文介绍了如何如何设置了 Keycloak 服务器,以及如何在 Spring Boot 中使用 Spring Security OAuth2.0 结合 Keycloak 实现认证和授权。
2025-11-24 20:30:30
663
原创 PostgreSQL 向量扩展插件pgvector安装和使用
重新修改.bash_profile,配置PG_CONFIG和LD_LIBRARY_PATH,指定安装的postgresql 16.3版本。make编译调用的postgresql不是之前安装的 16.3,而是apt-get 安装的10.23版本。利用pgvector 前提是事先安装好postgresql,安装postgresql例可参考下文。make编译pgvector时无法识别安装的postgresql。安装的版本不是最新的版本而是10.23。pgvector的安装成功。
2025-11-24 19:13:16
573
原创 MySQL篇之对MySQL进行参数优化,提高MySQL性能
innodb_flush_log_at_trx_commit:控制事务提交时日志的刷新策略。tmp_table_size 和 max_heap_table_size 控制内存中临时表的最大大小。如果设置为 1,每次写入二进制日志都会同步到磁盘,保证事务的持久性,但会带来一定的性能开销。磁盘 I/O 是数据库性能的重要瓶颈,合理配置与磁盘相关的参数有助于减少磁盘访问次数,提高性能。下面是一些常用的查询优化参数。MySQL 的日志记录可以帮助我们在故障时进行诊断,但是过多的日志记录会增加系统的负担。
2025-11-24 15:12:07
913
原创 MySQL 教程(超详细,零基础可学、第一篇)
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 是开源的,目前隶属于 Oracle 旗下产品。MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL 使用标准的 SQL 数据语言形式。MySQL 可以运行于多个系统上,并且支持多种语言。
2025-11-24 14:01:50
652
原创 Java进阶 主键和外键的使用区别
主键,primary key:是被挑选出来,作表的惟一标识的候选关键字,一个表只有一个主键。比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。注意,主键可以是一个字段,也可以是多个字段组合成的多字段联合主键#将name和deptId字段组合成为表temp的多字段组合主键外键:外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
2025-11-24 12:46:46
234
1
原创 PHP搭建开发环境(Windows系统)
要搭建一个完整的PHP动态网站,离不开操作系统、Web服务器、数据库、和PHP软件。虽然有不错方便的方式,比如使用phpstudio等等等等许多面板都是非常快速不错的方式,但是这里是教会大家如何配置而不只是依赖别人整合好的面板软件,有时就会发挥出用处。以下是本文章的所采用的大概配置。
2025-11-23 04:44:39
721
原创 mysql的主从配置
MySQL 主从又叫做 Replication、AB 复制。简单讲就是 A 和 B 两台机器做主从后,在 A 上写数据,另外一台 B 也会跟着写数据,两者数据实时同步的。MySQL 主从是基于 binlog 的,主上须开启 binlog 才能进行主从。主从过程大致有 3 个步骤:1)主将更改操作记录到 binlog 里2)从将主的 binlog 事件(sql 语句)同步到从本机上并记录在 relaylog里中继日志3)从根据 relaylog 里面的 sql 语句按顺序执行。
2025-11-23 03:33:37
833
原创 MYSQL 创建索引
第一次使用删除语句报错的原因是:由于自增列的错误,所以下面是先删除了自增属性,然后重新删除主键。创建唯一索引的方式有三种,和上面添加主键索引大致上是相同的,故只给出对应的代码部分。创建符合索引与创建普通索引语法相同,只不过是指定多个列,列与列之间用逗号隔开。其中:主键索引用PRI表示,唯一索引用UMI表示,普通索引用MUL表示。普通索引的三种创建方式和上面两种差不多,不过还是有一些不同的。查看索引的三种方式,在上面都有提到,现在可以进行一下总结。index 是创建索引的关键字,括号里是索引列。
2025-11-23 02:24:32
282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅