自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我的创作日记

个人小记

2026-03-31 20:46:02 40

原创 项目如何用Docker一键部署?(个人常见避坑指南)

本文记录了Vue3+SpringBoot项目Docker化部署过程中遇到的典型问题及解决方案。主要包含五个关键坑点:1) 镜像下载403报错,建议更换国内镜像源;2) OpenJDK镜像失效,改用eclipse-temurin镜像;3) 后端连接数据库失败,需用服务名代替localhost;4) 容器重启数据丢失,使用Volume持久化数据;5) 中文乱码问题,需配置MySQL字符集和系统字体。通过优化docker-compose.yml和Dockerfile配置,最终实现了一键启动的容器化部署方案。

2026-03-31 10:40:30 464

原创 通过实际demo掌握SpringSecurity+MP中的基本框架搭建

本文介绍了一个基于Spring Security + MyBatis-Plus + H2数据库实现的用户认证Demo。通过自定义UserDetailsService实现数据库用户查询,使用SecurityFilterChain配置URL权限规则,并整合Thymeleaf模板引擎实现简易页面。项目采用MyBatis-Plus简化数据访问层开发,利用LambdaQueryWrapper进行类型安全查询,实现了用户登录认证、角色权限控制等核心功能,解决了多管理员身份区分和权限优化问题。

2026-03-20 11:08:15 398

原创 AI 时代下的 Spring Security:为什么你的密码需要 `{bcrypt}` 前缀?

在AI时代下Spring Security密码加密的最佳实践。核心机制DelegatingPasswordEncoder通过{id}前缀实现多加密算法兼容,解决系统升级迁移问题

2026-03-15 08:00:00 360

原创 高并发下AI对话系统架构升级:从内存到Redis+MySQL的一致性陷阱与实战

本文记录了非遗AI对话系统从内存存储升级为Redis+MySQL持久化架构的全过程。最初的内存方案存在数据丢失、隐私风险等问题,重构后采用Redis缓存热数据(1-2天TTL)和MySQL持久化冷数据的策略。重点剖析了三大技术难点:1)数据结构序列化转换;2)双写顺序与事务一致性陷阱;3)AI生成代码的局限性。最终实现数据安全隔离、性能提升和架构清晰化

2026-03-13 11:41:53 439

原创 SpringAI基础对话机器人实现全攻略

本文介绍了基于SpringAI框架实现对话机器人的关键技术方案。主要内容包括: 环境配置:引入SpringAI依赖,对接云服务大模型API 参数设置:配置模型服务商地址、API密钥及温度参数 核心实现: 使用ChatMemory管理对话历史 通过ChatClient实现与AI模型交互 支持流式响应和角色设定 功能扩展: 会话ID管理实现多轮对话 跨域处理解决开发环境问题 历史记录存储与查询功能 实践要点:系统提示词优化、Token控制、日志监控等注意事项 该方案兼顾了开发效率和功能完整性,可作为智能对话系统

2026-03-08 16:35:54 480

原创 Redis分布式锁灵活运用:原理与误删问题解决

本文探讨了在分布式系统中实现Redis分布式锁的关键技术。首先分析了传统单机锁的局限性,提出了基于Redis的分布式锁解决方案。通过setnx命令的原子性操作实现锁获取,并设置超时时间防止死锁。文章详细展示了在Spring Boot项目中实现ILock接口和SimpleRedisLock类的过程,并重点解决了"锁误删"问题。通过引入UUID+线程ID的唯一标识机制,确保只有锁持有者才能释放锁,从而保证分布式环境下的数据一致性。

2026-03-02 08:00:00 894

原创 Java多线程项目操作:同步、通信与线程池精要

Java多线程核心要点摘要 本文总结了Java多线程编程的核心机制与实践经验。首先介绍了synchronized关键字实现线程同步的正确用法,包括锁对象选择和减小锁粒度;其次讲解了volatile变量的适用场景与限制。在通信机制方面,重点分析了wait/notify的正确使用方式。最后详细讲解了线程池的配置原则,包括参数设置和拒绝策略选择,特别强调避免使用Executors工厂方法。文章还指出了常见误区,如volatile不能保证原子性操作,并提供了生产环境中的最佳实践建议。

2026-03-01 07:30:00 837

原创 Spring Boot + Redis:高性能用户认证项目运用

摘要:本文提出了一种基于JWT+Redis的高性能用户认证方案,解决传统JWT方案存在的网络开销大和无法主动失效问题。通过JWT存储核心标识,Redis缓存完整用户信息并实现自动续期机制,确保活跃用户会话永不过期。采用双拦截器设计(RefreshTokenInterceptor负责无感续期,LoginInterceptor严格校验),结合ThreadLocal优化上下文传递,实现高效安全的认证流程。方案利用Redis的Hash结构和TTL机制,支持字段级更新和滑动窗口会话管理,显著提升系统性能。

2026-02-27 22:59:47 907

原创 Spring Boot 总结(4)配置与扩展方式

本文介绍了Spring Boot中配置与扩展的核心功能,主要包括:1)Profile多环境配置,通过不同环境配置文件实现灵活切换;2)自定义Starter开发流程,封装通用功能为可复用模块;3)使用@ConfigurationProperties实现类型安全的配置绑定;4)条件装配注解@ConditionalOn...实现按需加载;5)应用生命周期事件监听机制。这些特性体现了Spring Boot"约定大于配置"的设计理念,通过合理的配置管理、模块化开发和自动装配机制,帮助开发者构建高聚

2026-02-18 11:35:49 922 4

原创 SpringBoot总结(3)数据访问

这是一篇关于SpringBoot对数据访问进行进阶操作的文章

2026-02-17 21:51:57 889

原创 Spring Data JPA实战:从入门到精通

本文介绍了面向接口编程的ORM技术,重点讲解了Spring Data JPA的核心概念和使用方法。主要内容包括:1) ORM的定义和JPA规范;2) 核心三要素:实体类、Repository接口和查询方法;3) Query Methods的原理和示例;4) 常用注解速查表;5) 从零开始构建JPA应用的完整步骤,包括依赖配置、实体类创建、Repository接口定义等。通过方法命名约定和注解,开发者可以快速实现数据库操作,减少样板代码。

2026-02-06 21:30:49 893

原创 Spring Boot 总结(2)Web开发

本文总结了SpringBoot Web开发的核心机制:1)统一异常处理,通过@RestControllerAdvice和@ExceptionHandler实现异常标准化响应;2)区分拦截器和过滤器的使用场景,业务逻辑用拦截器,协议处理用过滤器;3)跨域解决方案,开发用注解,生产配置全局或Nginx代理;4)文件上传下载的安全实践。整体体现了SpringBoot"约定优于配置"的设计哲学,通过标准化组件简化开发,让开发者更专注业务逻辑实现。(148字)

2026-02-02 15:22:40 952

原创 Spring Boot 总结(1)基础

Spring Boot 不是一个新框架,而是对 Spring 的封装和增强。它的目标是简化 Spring 应用的初始搭建和开发过程。传统 Spring 开发需要大量 XML 或 Java 配置,依赖管理复杂,部署时需打成 WAR 包放到外部 Tomcat。而微服务架构下,每个服务独立部署,这种模式变得笨重。Spring Boot 提出“应用即服务器”的理念:把 Web 服务器(如 Tomcat)内嵌到应用中,打包成可执行 JAR,直接通过java -jar启动,极大简化了部署流程。

2026-02-01 12:40:19 844

原创 Spring Boot异常处理与跨域实战

本文介绍了Spring Boot项目中三个关键功能模块的实现方法。首先讲解了统一异常处理机制,通过@RestControllerAdvice和@ExceptionHandler实现全局异常捕获,并推荐自定义业务异常和统一的返回格式。其次对比了Filter和Interceptor的区别,建议底层处理用Filter,业务逻辑用Interceptor,并给出了登录拦截器的实现示例。最后详细说明了CORS跨域问题的解决方案,包括局部注解和全局配置两种方式,并指出生产环境中推荐使用Nginx反向代理来彻底解决跨域问题

2026-01-31 22:44:01 801

原创 Java基础-I/O与File

本文总结了Java IO和文件操作的核心知识点:1) File类用于管理文件和目录元信息,但不能读写内容;2) 字符流和字节流的区别及应用场景,文本用字符流,二进制用字节流;3) 使用BufferedReader/BufferedWriter提高I/O效率;4) 大文件读取方法及注意事项;5) 序列化与反序列化的实现方式及关键细节。特别强调安全注意事项,如避免OOM和不信任数据的反序列化风险。

2026-01-24 22:15:11 485

原创 Java基础-异常

Java异常体系摘要:异常继承自Throwable,分为Error(JVM错误)和Exception(程序异常)。Exception又分为受检异常(必须处理,如IOException)和非受检异常(RuntimeException及其子类,如空指针异常)。throw用于抛出异常对象,throws声明可能抛出的异常类型。finally块通常都会执行,除非程序异常终止。建议自定义业务异常时继承RuntimeException,命名以Exception结尾。处理异常时应避免静默吞掉异常,至少要记录日志。面试常见问

2026-01-24 22:10:03 430

原创 Spring Boot AOP切面编程实战指南

本文详细介绍了Spring Boot中的AOP切面编程技术。主要内容包括:AOP概念及其核心价值,通过方法耗时统计案例展示AOP的优势,快速入门示例(依赖引入、切面类编写),AOP核心概念解析(连接点、通知、切入点等),基于动态代理的执行流程,五种通知类型对比及使用建议,公共切入点抽取优化方法,多切面执行顺序控制策略,以及一个完整的操作日志记录实战案例。文章强调AOP能有效解耦横切关注点,提升代码可维护性,并提供了从基础到进阶的实用技术指导。

2026-01-23 07:30:00 1561

原创 Swagger与Knife4j实战:接口文档搭建指南

本文介绍了Swagger和Knife4j在Java项目中的集成与应用。首先概述了Swagger作为RESTful API文档工具的优势,以及Knife4j作为其增强解决方案的特点。随后详细讲解了集成步骤,包括依赖配置、核心配置类编写和静态资源映射设置,并提供了管理端和用户端接口的分组配置示例。文章还总结了常用Swagger注解及其使用场景,对比了Yapi与Swagger的定位差异,最后分享了访问方式和常见问题解决方案。通过本文可以快速掌握如何在Java项目中集成使用Knife4j来生成和管理API文档。

2026-01-17 19:39:40 815

原创 SpringBoot入门:从入门到精通(1)

本文介绍了SpringBoot的核心概念与Web开发基础。SpringBoot通过自动配置和起步依赖简化了Spring应用开发,解决了传统Spring应用的依赖管理、配置复杂等问题。文章详细讲解了YAML配置文件的优势与语法,对比了@Value和@ConfigurationProperties两种配置读取方式。在Web开发部分,阐述了HTTP协议请求响应格式、RESTful风格设计,以及响应数据的封装方法。最后提及分层解耦思想和三层架构设计,强调单一职责原则。全文内容实用,适合快速掌握SpringBoot

2026-01-15 15:38:42 840

原创 Spring MVC核心原理与实战指南

本文深入探讨了Spring MVC的核心原理与实践应用。首先介绍了Spring MVC的五大特点:轻量级、高效、与Spring容器无缝集成、约定优于配置和功能丰富。重点解析了其基于前端控制器的核心原理,详细说明了DispatcherServlet处理请求的完整流程,包括请求接收、处理器查找、业务执行、结果处理和视图渲染等关键步骤。 文章还对比了传统接口实现和现代注解开发两种Controller创建方式,详细讲解了@Controller、@RequestMapping和@RestController等核心注解

2026-01-14 18:31:51 755

原创 从“记住登录“到JWT:一文看懂Web认证技术的演进与实战

本文介绍了Web认证技术的演进过程,从基础HTTP协议的无状态特性出发,详细讲解了Cookie、Session和JWT三种主流认证方案。重点分析了JWT的优势:无状态、跨域支持和集群友好性,并提供了SpringBoot集成JWT的实战指南,包括依赖引入、工具类编写和令牌生成/解析的核心代码实现。文章强调JWT已成为企业级开发的主流选择,同时指出生产环境中密钥管理的重要性。

2025-11-25 22:22:19 971

原创 Maven分模块设计与高级特性

本文系统介绍Maven高级特性在企业级Java项目中的应用。重点阐述分模块设计的必要性(解决团队协作、代码复用等问题)及三种拆分策略,详解私服的仓库类型与配置方式。深入解析继承机制的统一版本管理价值与聚合工程的一键构建功能,对比两者差异并提供融合实践方案。通过Tlias案例展示模块化项目结构设计,推荐将继承与聚合结合的最佳架构模式,最终实现项目可维护性、协作效率和构建自动化的全面提升。

2025-11-18 23:42:06 695

原创 WebSocket技术解析与项目实战

本文介绍了WebSocket协议及其在实时交互场景中的应用。针对HTTP协议的局限性(短连接、单向通信、高延迟),WebSocket通过长连接实现全双工通信,解决了服务端主动推送的问题。文章对比了HTTP和WebSocket的核心差异,列举了弹幕、在线客服等典型应用场景,并以订单提醒为例,详细展示了Spring Boot集成WebSocket的实战步骤:添加依赖、创建服务端组件、配置WebSocket服务等关键实现。

2025-11-16 23:49:43 980

SpringSecurity+MP实战demo

SpringSecurity+MP中的基本框架搭建demo

2026-03-20

空空如也

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

TA关注的人

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