自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 基于SpringBoot的DeepSeek-demo 深度求索-demo 支持流式输出、历史记录

注:postman中只有websocket才有流式效果。

2025-12-01 22:10:00 373

原创 【Spring Security系列】Spring Security 过滤器详解与基于JDBC的认证实现

上文说到,Spring Security它是一个强大的和高度可定制的身份验证和访问控制框架。它提供了一套丰富的功能,用于保护基于Spring的应用程序。上文又说到,在Spring Security中,过滤器(Filter)是一个重要的组件,用于处理身份验证、授权和其他安全相关的任务。Spring Security 的过滤器链由多个过滤器组成,每个过滤器负责处理特定的安全任务。当请求到达应用程序时,它会依次通过过滤器链中的每个过滤器,直到到达目标资源。

2025-12-01 20:07:27 703

原创 SQL 中 COUNT 的用法详解

COUNT(*):统计表中所有行,包括NULL值。COUNT(1):与COUNT(*)类似,统计所有行。COUNT(列名):统计某列中非NULL值的数量。COUNT(DISTINCT 列名):统计某列中不重复的非NULL值。COUNT可与GROUP BY和HAVING等子句结合,进行复杂的分组统计和条件过滤。COUNT(*)和COUNT(1)在大多数数据库中性能相同,可以按习惯使用。

2025-12-01 17:54:51 506

原创 SQL sever数据导入导出实验

bcp [TPC-H].[dbo].[PART] out “D:学校d大二下数据库实验一数据文件ile.csv” -c -t -T -S . -U sa -P 1234。(1)右键“数据库”,点击“新建数据库”即可。(2)进行导入,导入代码如下。1.创建数据库TCP-H。(1)下载安装bcp工具。(1)下载csv文件。

2025-12-01 17:54:21 159

原创 Springboot中使用Elasticsearch(部署+使用+讲解 最完整)

这里只做演示和介绍,如果只需要了解在Java中使用可跳过,去看第四部分,但是这些还是很有必要了解一下。Docs。

2025-11-30 21:22:39 911

原创 Redis最全详细学习

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求。

2025-11-30 18:42:53 653

原创 mysql表添加索引

在 MySQL 中,可以使用 ALTER TABLE 语句来为表添加索引。索引可以提高查询性能。一个表只能有一个主键索引,用于唯一标识表中的每一行。如果表中没有定义主键,可以使用 ALTER TABLE 添加。希望本文对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。用于对文本类型的列进行全文搜索。确保索引列的值是唯一的。

2025-11-30 16:45:40 223

原创 Linux下MySQL的简单使用

可以看到C语言已经有了很成熟的与MySQL交互的接口,并且大部分函数的使用是和MySQL版本不相关的,但实际在Ubuntu运行的时候还是需要注意MySQL的版本和包的问题,因为新版本的MySQL库修改了一些配置文件的位置和相关的依赖包。

2025-11-30 14:50:24 574

原创 【漏洞复现】CVE-2019-11043(PHP远程代码执行漏洞)信息安全论文_含漏洞复现完整过程_含Linux环境go语言编译环境安装

在PHP5.4版本之前,Nginx处理PHP的流程是调用php-fpm,php-fpm再创建进程,调用php-cgi,以此实现了Ngixn对PHP的解析问题,此时php-fpm起到的是管理php-cgi的作用。fast-cgi协议改进了进程的处理模式,当一次通信完成后,通信进程会得以保留,不会杀死通信使用的进程,其他的通信还可以继续使用这个进程,这样一来,就大大提升了系统资源使用效率。最后,信息安全是一个持续的过程,需要不断地学习和更新知识,跟踪最新的漏洞和攻击技术,并采取相应的防护措施。

2025-11-30 01:13:00 888

原创 Spring Boot从0到1 -day02

如果你需要为自己的组件或库添加自动配置支持,可以自己编写自动配置类,并遵循上述模式。创建一个自动配置类,并使用适当的条件注解。使用@Bean方法来定义 bean。如果需要绑定配置属性,可以使用注解。Spring Boot的强大之处在于其条件注解实现自动化和灵活配置。这些注解帮助开发人员轻松构建扩展性强、配置灵活的应用而无需关注复杂配置。通过智能地选择和配置Bean,提升了应用的健壮性和适应性。

2025-11-29 19:55:22 551

原创 mysql表添加索引

在 MySQL 中,可以使用 ALTER TABLE 语句来为表添加索引。索引可以提高查询性能。一个表只能有一个主键索引,用于唯一标识表中的每一行。如果表中没有定义主键,可以使用 ALTER TABLE 添加。希望本文对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。用于对文本类型的列进行全文搜索。确保索引列的值是唯一的。

2025-11-29 17:15:21 312

原创 Java 进阶:如何让线程主动让出 CPU

suspend 挂起线程,并不会释放锁,又不像 sleep 那样一段时间后自动恢复,所以容易引起死锁。wait 会把当前持有的锁释放掉同时阻塞住,让出 CPU。当其他线程调用 Object.notify/notifyAll 时,会被唤醒,可能得到 CPU,并且获得锁。yield 也可以让线程主动让出 CPU,然后和其他线程一起竞争 CPU,但是调度器也可以忽略 yield。,直接停止线程,同时会释放所有锁,太过暴力,容易导致数据不一致。sleep 方法可以让线程主动让出 CPU,但是并不会释放锁。

2025-11-29 14:36:37 313

原创 解决SpringBoot+MyBatisPlus 报错Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

【代码】解决SpringBoot+MyBatisPlus 报错Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required。

2025-11-29 04:13:39 376

原创 一、安装Redis(win11环境下)

在用户变量或者系统变量中找到“Path”关键字,并点击添加redis路径。图1-1 网页Redis版本选择。找到“Redis”,右键“属性”图1-2 redis目录下。图1-4 电脑系统信息页面。图1-3 命令窗口运行。图1-5 系统属性页面。点击“高级系统设置”

2025-11-29 01:40:49 344

原创 SQL 注入详解:原理、危害与防范措施

SQL注入是一种常见的安全漏洞,攻击者通过在应用程序中插入恶意的SQL代码,诱使数据库执行非授权的操作。这种攻击通常发生在应用程序没有正确过滤或转义用户输入的情况下,导致攻击者能够操控数据库查询,从而获取、修改或删除数据。SQL注入是一个严重的安全问题,开发者必须采取有效措施来预防。使用预编译语句、严格验证用户输入、遵循最小权限原则等都是防范SQL注入的有效手段。此外,定期的安全审查和测试也是保障应用安全的重要环节。通过这些措施,可以大大降低SQL注入的风险,保护应用程序和用户数据的安全。

2025-11-28 23:06:28 246

原创 Spring Boot集成Kafka:最佳实践与详细指南

本文详细介绍了如何在Spring Boot项目中集成Kafka,并通过最佳实践和代码示例来指导你。通过合理配置Kafka、使用KafkaTemplate发送消息、使用@KafkaListener接收消息以及处理错误和监控,你可以轻松地构建高效、可靠的消息处理系统。希望本文对你有所帮助!

2025-11-28 20:19:23 417

原创 NapCatQQ+Springboot基于onebot协议实现qq机器人

由此可以看出 NapCat 是类似于中间件的东西,也可称之为框架,这里我们就称之为qq机器人框架,本文章中介绍的都是集成版,无需手动安装QQ。

2025-11-28 17:42:16 372

原创 Java 进阶:如何让线程主动让出 CPU

suspend 挂起线程,并不会释放锁,又不像 sleep 那样一段时间后自动恢复,所以容易引起死锁。wait 会把当前持有的锁释放掉同时阻塞住,让出 CPU。当其他线程调用 Object.notify/notifyAll 时,会被唤醒,可能得到 CPU,并且获得锁。yield 也可以让线程主动让出 CPU,然后和其他线程一起竞争 CPU,但是调度器也可以忽略 yield。,直接停止线程,同时会释放所有锁,太过暴力,容易导致数据不一致。sleep 方法可以让线程主动让出 CPU,但是并不会释放锁。

2025-11-27 10:33:52 279

原创 三大框架-Spring

spring框架是以一个分层架构,有七个定义良好的模块组成,Spring模块构建在核心容器之上,核心容器定义了创建,配置和管理bean方式:1.Spring Core:核心容器 ,提供Spring的基本功能.2.SPring Contest:Spring上下文,是一个配置文件3.Spring AOP : Spring 中面向切面编程4…Spring Dao:用于管理异常与抛出错误的信息5.Spring ORM: 提供ORM对象关系工具6.Spring Web: 用于处理请求与处理参数绑定的工作。

2025-11-26 22:15:07 247

原创 【Mysql】:如何恢复误删的数据?

在MySQL中恢复误删除的数据是一个常见但复杂的问题。具体的方法取决于几个因素,包括您是否有备份、使用的是哪种存储引擎(如InnoDB或MyISAM)、以及您的数据库配置等。

2025-11-26 21:06:07 269

原创 Tomcat的server.xml配置详解

要开启Web应用的自动部署,需要配置所在的虚拟主机;但是,需要注意的是,在自动部署场景下(配置文件位于xmlBase中),不能指定path属性,path属性由配置文件的文件名、WAR文件的文件名或应用目录的名称自动推导出来。xmlBase属性指定Web应用的XML配置文件所在的目录,默认值为conf/<engine_name>/<host_name>,例如第一部分的例子中,主机localhost的xmlBase的默认值是$TOMCAT_HOME/conf/Catalina/localhost。

2025-11-26 19:56:44 348

原创 SpringCloudGateWay

SpringCloudGateWay进行服务化:我们需要将我们的springCloudGatewa项目当作一个服务注册到EurekaServer中,配置如下server:port: 8888spring:application:name: cloud-gateway-eurekacloud:gateway:discovery:locator:enabled: trueeureka:client:service-url:defaultZone: http://localhost:

2025-11-26 18:45:25 231

原创 SpringBoot 使用 spring.profiles.active 来区分不同环境配置

很多时候,我们项目在开发环境和生产环境的配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境,我们要用生产数据库,这时候,我们可以利用 profile 在不同的环境下配置用不同的配置文件或者不同的配置。

2025-11-26 17:35:16 303

原创 从基础到高级,看完这篇Java进阶文档,你会发现没有那么难

不管是基础还是中级、高级,每个part都至关重要重要的,而且我觉得特别是基础这一块,如果基础都没有打牢,那怎么去盖楼?而以上我所例举的全部基础部分的面试题、中级开发所对应问题以及高级程序员要掌握的知识点,相关的完整解析都有全部整理的啦。基础部分题目+答案有40多页,中级开发的也有40多页,高级部分的内容就比较多了(有180页了),全都弄成PDF文件了需要的的朋友可以私star小编【面试】即可~

2025-11-25 16:18:53 227

原创 【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用

是 Oracle 11g 中用于修改和删除表中数据的重要 SQL 语句。在操作时,需特别注意数据筛选条件的准确性,以避免意外更改或删除数据。是管理数据表中记录的核心操作,其灵活性和强大功能使其在日常开发中被广泛使用。但在操作时需特别小心,确保筛选条件准确并采取必要的备份与验证措施,以避免因误操作造成数据丢失或不一致。用于更新表中的现有数据,可以更新单行或多行记录,需结合。对关键表进行更新或删除前,建议备份数据,尤其在生产环境中。,将删除表中的所有记录,但表结构仍然保留。可返回更新或删除的行数据。

2025-11-25 15:09:47 426

原创 Ubuntu安装Redis

安装环境: Ubuntu 18.04 64位。

2025-11-25 13:53:05 191

原创 SpringMVC 请求参数接收

在浏览器与程序进行交互时,主要分为**1. 建立连接:**将用户(浏览器)和 Java 程序连接起来,也就是访问一个地址能够调用到Spring程序的功能**3. 响应:**在执行了业务逻辑之后,要将程序执行的结果返回给客户,也就是响应在本篇文章中,我们来学习请求(获取参数)这部分内容。

2025-11-25 12:41:49 928

原创 SpringBoot SpringCloud spring framework 版本对应

spring-boot版本 依赖springframework jdk版本 发布时间。兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x。兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x。兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x。兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x。spring-boot和springframework、jdk的版本关系。

2025-11-25 11:16:35 401

原创 Spring Boot 3.x 引入springdoc-openapi (内置Swagger UI、webmvc-api)

给我的启发,

2025-11-24 20:20:35 780

原创 pg_sql关于时间的函数

作用:提取时间中某些内容(可以实现和date_part类似功能)时间戳转日期(时间戳为数值类型,若为字符型需进行转换)作用:获取日期对应的参数是当前年的第几(周、月、季)格式:日期 +/- interval ‘加减值’格式:date_trunc((‘参数’,日期))格式:date_part(‘参数’,日期)格式:extract(提取值from时间)作用:获取日期对应参数的起始。作用:实现时间日期的加减。

2025-11-24 19:02:50 143

原创 mysql时间时区修改、set global、配置文件-default-time-zone

通过查看mysql错误日志或二进制日志可以看到时间和时区并不与国内的东八区时间一致。

2025-11-24 15:01:34 244

原创 MySQL Workbench菜单汉化为中文

默认情况下,安装完成的MySQL Workbench的菜单为英文,今天介绍一个简单易操作的方法,将MySQL Workbench菜单汉化为中文。

2025-11-24 13:51:28 246

原创 JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)

我们想要部署一个javaWeb项目到tomcat上,需要了解一些概念Tomcat 是 Apache 软件基金会(Apache Software Foundation)下的一个开源项目,主要用于实现 Java Servlet、JavaServer Pages(JSP)、Java Expression Language(JSTL)、Java WebSocket 技术以及 Java API for WebSocket 的容器。

2025-11-24 12:33:19 861

原创 Redis队列和阻塞队列

普通的redis队列,为了实现业务,通常会使用while进行循环,这样的话没有消息时依旧会频繁的执行循环,造成cpu的空转,所以一般会在代码中增加sleep来解决该问题,但因此又会造成消息延迟问题。使用 BRPOP 这种阻塞式方式拉取消息时,还支持传入一个「超时时间」,如果设置为 0,则表示不设置超时,直到有新消息才返回,否则会在指定的超时时间后返回 NULL。redis队列提供了 “阻塞式” 拉取消息的命令:BRPOP / BLPOP,这里的 B 指的是阻塞(Block)。下面是某业务完整的消费者代码。

2025-11-23 05:43:47 176

原创 npm无法加载文件:因为在此系统上禁止运行脚本

出现需要管理员权限提示,可选择执行 Set-ExecutionPolicy -Scope CurrentUser。出现的ExecutionPolicy参数后输入:RemoteSigned。说明不是环境变量的问题,那么定位到注册列表的问题。三、可能是环境变量的问题,进入cmd,输入。显示Restricted,说明状态是禁止的。,显示 RemoteSigned 改好了。二、node的版本是可以打印出来的。这个目录下看到是有这个文件的。再来使用npm就可以了。在vscode中输入。

2025-11-23 04:34:00 157

原创 MySQL数据库的数据文件保存在哪?MySQL数据存在哪里

在安装好MySQL数据库使用一段时间后,会产生许多的数据库和数据。那这些数据库的数据文件存放在本地文件夹的什么位置呢一、默认位置MySQL创建的数据库实际上存储在文件系统的一个特定目录中,该目录通常为MySQL的数据目录。这个目录的默认位置依据操作系统和MySQL的安装方式不同而有所差异。、这个目录通常位于,它可能位于是个隐藏文件夹)**其中“X.X”是MySQL的版本号。目录(每个数据库都有一个与其同名的文件夹,而这个文件夹中包含了该数据库的所有表的文件,而其中的文件代表了数据库中的表。

2025-11-23 03:23:39 522

原创 MySQL Join 的原理与优化实践

算法适用场景优点缺点内层表有索引查询高效,减少内层扫描行数依赖索引,外层表仍需扫描所有行无索引,小数据量简单实现,适合小型数据集内层表全表扫描,效率较低无索引,大数据量缓冲区减少扫描次数依赖内存大小,耗内存场景Join 是否必要推荐方案汇总查询(无关联需求)不必要使用单表查询或子查询优化,避免多余 Join。多表关联查询必要若数据量较大,优先使用子查询减少扫描行数;若数据量小,直接 Join 效率更高。

2025-11-23 02:14:26 635

原创 Java 进阶:如何让线程主动让出 CPU

suspend 挂起线程,并不会释放锁,又不像 sleep 那样一段时间后自动恢复,所以容易引起死锁。wait 会把当前持有的锁释放掉同时阻塞住,让出 CPU。当其他线程调用 Object.notify/notifyAll 时,会被唤醒,可能得到 CPU,并且获得锁。yield 也可以让线程主动让出 CPU,然后和其他线程一起竞争 CPU,但是调度器也可以忽略 yield。,直接停止线程,同时会释放所有锁,太过暴力,容易导致数据不一致。sleep 方法可以让线程主动让出 CPU,但是并不会释放锁。

2025-11-23 01:01:58 289

原创 Redis重大版本整理(Redis2.6-Redis7.0)

Redis借鉴了Linux操做系统对于版本号的命名规则:node 版本号第二位若是是奇数,则为非稳定版本(例如2.7、2.9、3.1),若是是偶数,则为稳定版本(例如2.6、2.8、3.0、3.2)。当前奇数版本就是下一个稳定版本的开发版本,例如2.9版本是3.0版本的开发版本,因此咱们在生产环境一般选取偶数版本的Redis。

2025-11-21 14:58:34 693

原创 Nodemailer使用教程:在Node.js中发送电子邮件

Nodemailer是Node.js平台上最流行的电子邮件发送库,它提供了一个简单而强大的解决方案,支持Unicode内容、HTML内容、附件、图片嵌入等功能。SMTP(Simple Mail Transfer Protocol,简单邮件传输协议) 是一个在互联网上发送电子邮件的标准协议。

2025-11-21 13:48:39 892

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除