- 博客(58)
- 收藏
- 关注
原创 最新Spring Security实战教程(一)初识Spring Security安全框架
随着Web应用和微服务架构的普及,作为JAVA开发者如何保证系统免受各种安全威胁(如未经授权的访问、数据泄露、跨站请求伪造等)成为一个我们必须要解决的问题。作为Spring生态系统中的核心组件,通过提供认证()与授权()和针对常见攻击等一系列安全功能,为开发者构建安全稳定的应用提供了强有力的支持。是一个基于Spring认证(Authentication): 确定访问者身份的过程。Spring Security通过多种方式(如表单登录、Basic认证、OAuth2等)实现用户身份验证。
2025-08-20 21:02:45
746
原创 Spring AI + MCP Client 配置与使用详解
随着大模型技术的快速发展,逐渐成为连接本地系统和远程AI服务的重要桥梁。Spring AI 是 Spring 官方推出的 AI 开发框架,支持多种语言模型接口,而 MCP Client 则是其集成远程推理能力的核心组件之一。本文将详细介绍如何在Spring Boot 项目中配置和使用 Spring AI 的 MCP Client,包括环境准备、依赖引入、配置方式、代码实现、扩展机制以及常见问题排查等内容。是一种用于协调本地应用与远程 AI 模型服务之间交互的协议。向远程模型服务器发送请求;
2025-08-18 22:11:05
2143
原创 一文让你测底明白如何在 Spring Boot 上传中将 MultipartFile 转 File 对象
在我们开发应用中,文件上传通常通过接口接收。但有时我们需要将转成标准的对象,便于与依赖本地文件 API 的第三方库(如 Apache POI、Tika、图像处理库等)集成,也便于做临时文件存储与后续处理第三方库依赖:如某些 PDF 解析、办公室文档处理 API 只接受 File 对象或文件路径文件处理:对上传文件进行临时处理、压缩、分析;临时缓存:需要将上传文件缓存在本地以做异步处理、批量扫描等那么我们就需要将转换对象,本文博主将讲解常见的四种方案,希望小伙伴们阅后能快速掌握。中转File。
2025-08-13 10:57:54
1079
原创 【Spring AOP】什么是AOP?切点、连接点、通知和切面
AOP是Spring框架的第二大核心(第一大是IoC(面向切面编程)什么是面向切面编程呢?切面就是指某一类特定问题,所以AOP也可以理解为面向特定方法编程什么是面向特定方法编程呢?比如前面说到的“登录校验”,就是一类特定问题登录校验拦截器,就是对“登录校验”这类问题的统一处理所以,拦截器也是AOP的一种应用AOP是一种思想,拦截器是AOP思想的一种实现,Spring框架实现了这种思想,提供了拦截器技术的相关接口简单来说:AOP是一种思想,是对某一类事情的集中处理AOP。
2025-08-11 22:45:53
465
原创 MySQL八股篇
聚簇索引是指数据与索引放在一起,B+树的叶子节点保存了整行数据,通常只有一个聚簇索引,一般是由主键构成非聚簇索引则是数据与索引分开存储,B+树的叶子节点保存的是主键值,可以有多个非聚簇索引。
2025-08-09 09:18:28
472
原创 史上最全 MySQL 锁详解:从理论到实战,一篇搞定所有锁机制
锁是数据库用来控制多个并发事务对共享资源访问的一种机制。在多用户环境下,多个事务可能同时操作同一数据,不加控制的并发操作可能会导致脏读不可重复读幻读等数据一致性问题。锁的出现,就是为了合理地控制并发,确保数据的准确性。MySQL 锁机制是保证数据库并发控制和数据一致性的核心技术,掌握各种锁的特点、作用和使用场景,对于开发高性能、高可靠的数据库应用至关重要。
2025-08-07 20:47:52
732
原创 Springboot实战:AI大模型+亮数据代理助力短视频时代
采集视频素材短视频已成为当下最受欢迎的内容形式之一,无论是个人创作者还是企业品牌,都在积极拥抱这一趋势。然而,短视频的制作不仅需要创意和技巧,还需要大量的高质量素材作为支撑。本文将探讨如何利用现代技术手段Springboot集成AI大模型技术,结合亮数据代理服务,自动化地获取和处理短视频素材,以提高制作效率和视频质量。
2025-08-05 23:32:09
936
原创 深度解析【JVM】三大核心架构:运行时数据区、类加载与垃圾回收机制
作为Java生态的基石,Java虚拟机(JVM)承担着字节码解释执行、内存自动管理和跨平台兼容的核心职责。理解JVM工作机制,不仅是解决等生产环境问题的关键,更是高级开发者必须掌握的系统级知识。本文将系统剖析以下核心模块:执行流程:从.class字节码到机器指令的转化流程内存迷宫:堆/栈/方法区的数据存储结构与线程安全设计类加载机制:双亲委派模型的安全保障与破坏场景垃圾回收体系:从对象存活判定算法到收集器演进带您深度剖析JVM,结合代码实例与内存快照,揭示JVM底层运作逻辑。类加载三阶段。
2025-08-04 20:17:51
916
原创 基于GeoTools和SpringBoot的省域驾车最快路线生成实践
在当今数字化时代,地理信息系统(GIS)技术与现代交通出行需求的深度融合正不断催生出诸多创新应用,其中驾车路线规划作为人们日常出行中极为关键的一项服务,其重要性愈发凸显。无论是长途旅行、商务出差,还是日常通勤,人们都渴望能够获取到一条既快速又高效的驾车路线,以节省宝贵的时间成本。
2025-07-30 23:07:25
857
原创 全面解析MySQL(3)——CRUD进阶&数据库约束
是数据库管理系统中用于确保数据完整性、一致性和有效性的规则集合。它们定义了数据在存储和操作过程中必须满足的条件,从而防止无效或不一致的数据进入数据库。非空约束、默认值约束、唯一约束、主键约束、外键约束、检查约束等。
2025-07-29 21:20:44
849
原创 【MySQL】索引中的页以及索引的分类
页是InnoDB存储引擎在磁盘上存储数据的一种逻辑结构,是管理数据和索引的基本单位,相当于一个容器,存放表中的记录、索引信息等。大小:在**.ibd文件中最重要的结构体就是Page(页),页是内存与磁盘交互的最小单元,默认情况下,InnoDB的页的大小为16KB,即使页中没有数据也会使用16KB的存储空间,同时与索引的B+树中的节点对应。每次内存与磁盘的交互至少读取一页,所以在磁盘中每个页内部的地址都是连续的。**
2025-07-28 21:10:35
1045
原创 【Spring AI 0基础教程】1、基础篇 环境搭建 - 智能天气预报助手
Spring AI(https://spring.io/projects/spring-ai)]是 Spring 官方于 2023 年推出的 AI 应用开发框架,它如同 AI 世界的"Spring 生态连接器",致力于简化开发集成了 AI 功能的应用程序。统一接口:消除不同 AI 服务(如 OpenAI、智谱 AI、DeepSeek 等)的 API 差异,允许用户灵活地在多个模型之间切换。生态整合:将 AI 能力无缝融入 Spring 技术栈(如 Spring Boot、Spring MVC)。
2025-07-22 19:03:02
818
原创 SQL SQL语句总结
SQL(Structured Query Language),是“结构化查询语言”,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server 等。用来定义库,表的创建等,负责操作数据库的单位create alter drop 创建 库 表。
2025-07-21 20:33:53
625
原创 在MySQL中查找重复值
在数据库管理中,查找重复值是一项常见需求。比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值。若只需知道重复值,可使用方法二;若需获取完整记录,可使用方法三。:在使用多表连接或子查询时,可能会出现列名冲突。可使用表别名或指定列的全限定名来避免。:在处理大量数据时,部分查询可能会变慢。:在查找重复值的列上创建索引,可显著提高查询性能。:某些子查询可能会导致性能下降,可考虑使用连接或窗口函数来替代。此方法可找出指定列中的重复值,并统计其出现次数。
2025-07-18 20:34:42
855
原创 【基于 Spring Boot 的 WebSocket 心跳监测和自动重连机制实现详解】
● WebSocket 最初由 RFC 6455 标准化,运行于 TCP 之上。● 客户端发起一次 HTTP/1.1 升级(Upgrade)请求,服务器同意后,协议从 HTTP 切换到 WebSocket。● 双方在握手完成后可互发“帧”(Frame),常见的有 Text、Binary、Ping、Pong、Close 等类型。@Override@Override//收到 ping 返回 pongreturn;// 收到 text 返回 text@Override。
2025-07-15 20:52:45
473
原创 Spring DI的艺术:优雅解耦代码
依赖注入是一种设计模式,其核心思想是将对象的依赖关系由外部注入,而不是在类内部自行创建或查找。通过这种方式,代码的耦合度得以降低,系统更加灵活和易于维护。通过本文,你不仅了解了Spring依赖注入(DI)的核心原理,还掌握了如何用它实现代码的优雅解耦。不再让紧耦的代码阻碍发展,从今天起,让Spring DI帮助你实现模块化设计、提升可测试性和增强扩展性。优雅的代码不仅是技术的体现,更是开发者的艺术表达。用Spring DI,让你的代码更干净、更易维护,也让开发过程更具乐趣吧!
2025-07-14 20:19:57
398
原创 MySQL如何开启远程访问权限
bind-address = 0.0.0.0 # 允许所有IP连接(默认值为127.0.0.1,仅限本地)通过以上步骤,即可安全地开启MySQL远程访问权限。:防火墙未放行端口或MySQL未监听外网。:确认用户名、密码及授权IP是否匹配。:密码错误或用户无权限。:用户权限未正确配置。,指定具体IP或网段。
2025-07-14 20:19:22
887
原创 【Sql Server】sql server 2019设置远程访问,外网服务器需要设置好安全组入方向规则
本地电脑安装的sql server数据库可视化工具ssms连接到外网服务器的sql server数据库,实现本地化远程链接数据库进行管理和操作。
2025-07-12 21:52:30
510
原创 【MySQL】JDBC编程
当jdbc应用程序 本身所处的主机 就同是mysql服务器所处的 同台主机时,使用。任何应用程序的 编程层操作使用,都需要将 应用程序设计好的 实现使用功能的。指向应用程序自己所处的主机 即就指向了 mysql服务器主机的位置。在sql语句中 对变量输入非法内容 实现对数据库的攻击**,不安全。会不同,所以 为编程语言 代码操作使用层 设计给的。的形式填写参数,键值对之间 用**&**分隔。一台主机上 有许多的应用程序 都要操作网络,写出来的,不同的应用程序,其设计时的。的驱动程序,使得Java 用。
2025-07-02 20:03:54
867
原创 MySQL DDL深度解析:表结构操作的艺术与实践【Linux】
小编在前几日为大家分享了有关 MySQL 中数据库的 DDL 操作,今天我们将继续学习 MySQL 的相关内容。本篇将重点讲解 MySQL 中关于表的 DDL 操作。如果各位忘了表的相关概念,那么我推荐各位看我第一篇关于MySQL的文章,里面有详细的讲述,为了更方便各位后面的阅读,这里我简单说几句——表其实就相当于Linux中的文件,里面存储的都是一些比较重要的数据,就比如雇员表,工资表,部门表等等,这些后续我们都会涉及到的。接下来我们就进入今天的学习之旅。
2025-06-30 22:50:39
1009
原创 Node.JS 版本管理工具 Fnm 安装及配置(Windows)
在使用多个终端或 Shell 的情况下,Fnm 会在该路径下创建相应的目录,以便管理不同 Shell 会话的 Node.js 版本。若 Fnm 不能在本地查找到符合项目指定的 Node 版本,将会在终端中给出提示,若选择 Y 将会自动下载并切换至指定 Node 版本。$env:FNM_LOGLEVEL:设置 Fnm 的日志级别,默认值info,可选值quiet, error, info。$env:FNM_NODE_DIST_MIRROR:指定 Node.js 分发包的镜像地址。否则请重新尝试以上步骤。
2025-06-29 16:17:37
1032
原创 大模型之Spring AI实战系列:Spring Boot + DeepSeek 实战指南:工具函数(Function Call)实战应用
随着人工智能技术的飞速发展,大模型在各个领域的应用日益广泛,为开发者带来了前所未有的机遇和挑战。在众多的框架和平台中,Spring Boot以其简洁、高效的特点,成为了构建企业级应用的首选之一。而DeepSeek作为一款强大的人工智能平台,提供了丰富的API接口和功能,能够满足各种复杂的应用需求。本文将深入探讨如何将Spring Boot与DeepSeek相结合,通过工具函数(Function Call)的实战应用,帮助读者快速掌握这一前沿技术,实现高效、智能的应用开发。
2025-06-28 10:42:28
432
原创 你真的懂 MySQL 的一致性读和当前读的区别吗? 为什么表结构必须遵循当前读?
因此,在更新的时候,当前读拿到的数据是 (1,2),更新后生成了新版本的数据 (1,3),这个新版本的 trx_id 是 101。所以,在执行事务 B 查询语句的时候,一看自己的版本号是 101,最新数据的版本号也是 101,是自己的更新,可以直接使用,所以查询得到的 k 的值是 3。其中活跃的事务 ID 列表就是指已经启动的但还未提交的事务。说完了读,我们继续讲更新数据的原则,在下面的例子中(事务 C 采用的是自动提交模式),最后事务 A 查询的结果是 3,那么根据一致性读,结果似乎不正确?
2025-06-27 18:40:03
627
原创 Spring 框架
http 协议自身是属于“无状态”协议,这里的“无状态”指的是默认情况下,http协议的客户端和服务器之间的这次通信,和下次通信之间是没有直接联系的,但是在实际的开发中,我们很多时候是需要知道请求之间的关联关系的,比如**在一个网站登录成功后,第二次访问服务器就能知道该请求是否已经登录过了。3、服务器收到请求后,根据请求中的 sessionID 在 session 信息中获取到对应的用户信息,再进行后续操作,找不到则重新创建 session ,并把sessionID返回。
2025-06-26 20:22:49
782
原创 【springcloud】快速搭建一套分布式服务springcloudalibaba(一)
分布式服务 是一种将应用程序的功能拆分为多个独立的服务,并将这些服务部署在不同的计算节点(服务器、虚拟机、容器等)上的架构模式。每个服务可以独立开发、部署和扩展,并通过网络进行通信和协作,共同完成应用程序的功能。目前只实现了程序拆分俩个独立的服务,后面还需要实现统一网管路由,因为部署多个实例,需要有一个统一网关进入实例(配置登录认证)分布式锁,分布式事务等等。nacos是真的好用,相当于集成了eurke + apollo / 服务注册发现 和 动态配置管理。自身也可以直接部署多个实例。
2025-06-24 21:57:42
853
原创 MySQL连接报错处理:1130-host ... is not allowed to connect to this MySql server
这个错误通常出现在你尝试通过远程工具(如 Navicat、DBeaver 等)连接 MySQL 数据库时,虽然服务器可以ping通、也可以telnet端口,但就是无法建立数据库连接。本文将一步步带你排查并解决这个问题。
2025-06-24 21:54:25
1039
原创 【数据库】SQL Server 查询条件小技巧:ISNULL 函数的使用,有请DeepSeek来辅助讲解下
有位朋友反馈,直接使用等于值条件查询发现无法把null空筛选出来,今天试了下确实是如此,刚好看到isnull函数可以将null设置成某个默认值进行查询,比如?还是有请DeepSeek来辅助讲解下。
2025-06-23 20:35:39
845
原创 Spring MVC极简入门:从@Request到Postman的全链路开发
MVC 是 Model View Controller 的缩写,它是软件工程中的种软件架构设计模式,它把软件系统分为模型视图和控制器三个基本部分注意:此处视图与MySql中的视图不同MySQL:视图是一个临时表MVC:视图可以理解为一个界面View:专门用来与浏览器交互、展示数据的资源Controller:是应用程序的主体部分,用于处理程序中数据逻辑的部分Model:作为分发器,决定用哪个模型处理请求,并跳转视图抽象理解:去和平饭店吃饭~~~
2025-06-23 20:29:41
877
原创 为什么Nginx反向代理会出现502 Bad Gateway错误?
502错误全称是**“Bad Gateway”**,表示Nginx作为反向代理时,从后端服务器(如Tomcat、Node.js)收到了无效响应。本质原因Nginx无法与后端服务器建立有效连接或获取到合法响应。502错误的核心是Nginx与后端通信失败确保后端服务正常运行。合理配置超时和负载均衡参数。检查网络和资源占用。利用日志定位具体问题。
2025-06-22 21:38:45
1917
原创 【MySQL】视图
视图是由SELECT语句定义的虚拟表,它的结构和数据来源于底层的基表,视图中存储的其实是查询语句,当用户访问视图时,数据库会执行该查询语句,从基表中提取数据并返回结果。用户可以像操作普通表一样使用视图进行查询、更新、管理。像上述的SQL语句是一个4张表联合查询的语句,如此复杂的语句就可以使用视图进行封装,对SQL语句进行简化~
2025-06-19 21:21:42
648
原创 Java多线程之进阶篇
ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为“存放一定数量的一个线程集合。线程池允许若个线程同时运行,运行同时运行的线程数量就是线程池的容量。当添加到线程池中的线程超过它的容量时,会有一部分线程阻塞等待,线程池会通过相应的调度策略和拒绝策略,对添加到线程池中的线程进行管理。(2)
2025-06-18 21:56:00
928
原创 从 0 开始理解 Spring 的核心思想 —— IoC 和 DI(1)
时光如白驹过隙,一晃笔者又小半个月没更新了,也许无人在意笔者为何没更新了,但笔者还是想通报一下, 笔者这段时间一方面在备战期末考试,另一方面也在梳理学习笔记。现在,决定开启 Spring 系列博客的正式旅程。本篇将聚焦 Spring 的核心思想之一 —— IoC(控制反转)与 DI(依赖注入)。希望与大家一同深入探讨,让 Spring 的“魔法”不再遥不可及。
2025-06-16 11:15:12
283
原创 MySQL如何查看某个表所占空间大小?(表空间大小查看方法)
在MySQL数据库管理和优化中,了解表所占用的空间大小是非常重要的。ROUND((data_length+index_length)/1024/1024,2) AS ‘总大小(MB)’通过以上方法,您可以全面了解MySQL数据库中各个表的空间占用情况,为数据库优化和维护提供数据支持。二进制日志和事务日志:这些日志文件占用空间但不包含在表空间统计中。临时表空间:临时表和使用内存引擎的表不会显示在磁盘使用统计中。文件中(独立表空间)或共享表空间中。InnoDB表数据存储在。MyISAM表数据存储在。
2025-06-13 18:18:17
1102
原创 解决MySQL启动报错ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost‘ (10061)
时,通常表示MySQL服务未正常启动或未被系统识别。此时若未找到MySQL服务(如图红框标注),需手动安装服务。通过以上步骤,可解决因服务未启动或未注册导致的连接失败问题。输入密码后,若成功进入MySQL命令行界面,则问题解决。此步骤对应命令行操作中的路径切换。显示成功连接后的数据库列表。
2025-06-12 20:33:24
585
原创 sql中的regexp与like区别
其中,column_name是要进行匹配的列名,table_name是要查询的表名,pattern是要匹配的正则表达式模式。:灵活性强,能进行复杂模式匹配(如开头、结尾、字符集等)。The Begin?中第二个字符是 “a” 的所有行,你可以使用。:性能较好,适合简单模式匹配(如包含某字符)。(代表任意数量的字符,包括零个字符)和。例如,在 MySQL 中,可以使用。:高级字符串匹配,使用正则表达式。:简单字符串匹配,使用通配符。(代表一个任意字符)。
2025-06-12 20:31:22
911
原创 Python爬虫(54)Python数据治理全攻略:从爬虫清洗到NLP情感分析的实战演进
清洗效率突破:处理速度提升12倍(单机→分布式)质量管控升级:数据可用率从62%→98.7%分析精度飞跃:情感分析准确率达87.3%运维成本降低:自动化验证减少75%人工复核工作量数据治理已进入智能化时代,通过本文展示的技术栈组合,企业可以快速构建起具备自我进化能力的数据资产管理体系,真正实现从"数据沼泽"到"数据金矿"的价值跃迁。
2025-06-12 20:29:20
2880
原创 【SpringBoot】SpringBoot使用mail实现登录邮箱验证
在实际的开发当中,不少的场景中需要我们使用更加安全的认证方式,同时也为了防止一些用户恶意注册,我们可能会需要用户使用一些可以证明个人身份的注册方式,如短信验证、邮箱验证等。
2025-06-11 21:13:17
993
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅