自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Thymeleaf 核心用法全解析

Thymeleaf 是一款现代的服务端 Java 模板引擎,支持处理 HTML、XML、JavaScript、CSS 甚至纯文本等多种模板类型,核心目标是提供优雅、高可维护性的模板创建方式。其最大特色是自然模板(Natural Templates):模板文件无需处理即可作为静态 HTML 原型在浏览器中运行,Thymeleaf 的逻辑通过自定义属性注入,浏览器会自动忽略这些未识别的属性,实现了设计原型与开发模板的统一,解决了设计与开发团队的协作鸿沟。

2026-02-08 17:37:56 652

原创 SpringBoot 数据层开发与企业信息管理系统实战

自动配置简化开发:SpringBoot 的自动配置特性让数据源、JdbcTemplate、MyBatis 无需复杂配置,开箱即用;主流技术栈整合:整合 Druid(数据源)、MyBatis(持久层)、Thymeleaf(视图层),贴合企业开发实际;功能完整:实现了企业信息管理系统的核心功能(登录、增删改查),包含登录拦截、状态保持、前后端数据绑定;可监控可扩展:Druid 数据源提供可视化监控,MyBatis 支持注解和配置文件两种方式,方便后续扩展复杂业务;规范的分层开发:遵循。

2026-02-08 17:32:13 784

原创 Spring MVC 全局异常处理实战

本文讲解的全局异常处理方案,是Spring MVC 原生特性在企业级项目中的经典落地实践,核心是通过和两个注解,实现了异常的统一拦截、精准匹配、标准化响应。这套方案的核心价值,不仅在于解决了前端异常解析的问题,更在于让异常处理与业务逻辑完全解耦—— 开发者无需在业务层编写任何异常处理代码,只需专注于业务逻辑的实现,异常的捕获和处理全部由全局异常处理类自动完成。同时,其无侵入式的设计和极强的可扩展性,让它能轻松适配项目的所有业务场景,从简单的业务异常到复杂的系统异常,都能实现精细化处理。

2026-01-30 11:36:11 641 2

原创 JWT 登录校验机制:5 大核心类打造 Spring Boot 接口安全屏障

本文讲解的 JWT 登录校验机制,是Spring Boot + JWT + AOP(拦截器)在企业级项目中的经典落地实践,核心是通过 5 个核心类的协同工作,实现了从 Token 生成、请求拦截、Token 校验到用户信息传递的全流程自动化。这套方案的核心价值不仅在于保障了接口安全,更在于让安全校验与业务逻辑完全解耦—— 开发者无需在业务层编写任何校验代码,只需专注于业务逻辑实现;同时通过 ThreadLocal 实现用户信息的无感传递,让代码更简洁、更优雅。

2026-01-30 11:19:19 630

原创 统一 JSON 格式,JacksonObjectMapper 定制 Spring Boot JSON 转换规则

仅仅实现类,并不会让其生效,因为 Spring MVC 依然会使用默认的消息转换器处理 JSON。想要让自定义规则替代默认规则,需要在Web 配置类中扩展 Spring MVC 的消息转换器,将注册进去,并设置为最高优先级。当完成注册后,项目中所有的 JSON 转换(请求解析、触发 JSON 转换:前端发送请求(接收 JSON 参数)或后端返回数据(返回 JSON),Spring MVC 识别到需要处理 JSON 格式;查找消息转换器:Spring MVC 遍历converters。

2026-01-30 11:14:35 580

原创 基于 AOP + 反射实现公共字段自动填充

INSERT(新增)和UPDATE(修改)新增操作:需要填充createTimecreateUserupdateTimeupdateUser四个字段;修改操作:仅需要填充updateTimeupdateUser两个字段。/*** 数据库操作类型枚举*//*** 新增操作*/INSERT,/*** 修改操作*/UPDATE接下来定义一个自定义注解@AutoFill,该注解仅作用于方法,且在运行时有效,用于标记 Mapper 接口中需要进行公共字段自动填充的方法。

2026-01-30 10:47:44 594

原创 ThreadLocal 实现线程隔离的数据传递

简化代码:避免了多层级方法的显式参数传递,让代码更简洁、更优雅;数据隔离:保证多线程环境下的数据安全,不同线程之间的数据互不干扰;生命周期适配:完美适配 Web 项目的请求生命周期,同一个请求的所有处理逻辑共享同一套数据;低侵入性:基于工具类封装后,业务层代码无需关心数据的传递过程,只需直接调用即可,对业务代码无侵入。ThreadLocal 并不是什么高深的技术,但其设计思想非常巧妙 ——以空间换时间,通过为每个线程创建独立的副本,实现线程隔离的数据共享。

2026-01-30 10:41:33 687

原创 SpringBoot 中处理接口传参时常用的注解

绑定 URL 路径中的动态参数(RESTful 接口核心);:绑定 URL 查询参数(?key=value),支持必传 / 默认值配置;:绑定 JSON 请求体到 POJO(POST/PUT 传递复杂数据);:分别绑定请求头、Cookie 中的参数;无注解自动绑定:适用于简单 URL / 表单参数,无需额外注解。核心原则:根据参数位置(路径、查询、请求体、请求头)选择对应注解,复杂数据用,简单筛选用,RESTful 资源标识用。

2026-01-24 14:48:35 745 1

原创 Spring Boot核心特性与配置全解析

Spring Boot 的核心优势在于 “约定优于配置” 和 “自动配置”,通过 starters 机制简化依赖管理,通过注解替代繁琐的 XML 配置,让开发者聚焦业务逻辑而非框架配置。本文涵盖了 Spring Boot 从入门搭建、配置管理到自动配置原理的核心知识点,掌握这些内容后,即可快速开发稳定、高效的 Spring 应用。后续将深入讲解 Spring Boot 与数据访问、安全框架、微服务组件的整合,敬请关注!如果有任何疑问或建议,欢迎在评论区交流。

2026-01-23 23:39:54 712

原创 @Api 系列注解

Api系列注解是 Swagger/OpenAPI 生成可视化接口文档的核心,核心作用是给接口加 “注释”,让前后端对接更高效。@Api描述模块、描述接口、描述参数、描述响应。最佳实践:复杂参数用 DTO +@ApiModel,必填参数标required,补充示例值和状态码说明,隐藏敏感字段。简单记:注解的核心是 “让接口文档说人话”,你写的注解越详细,前端 / 测试看文档时就越少问问题。

2026-01-21 22:40:57 796

原创 MybatisPlus难懂点

这是 MyBatis-Plus 新手最容易纠结的点:什么时候用条件构造器,什么时候写自定义 SQL?需求:查用户 ID=1 的用户信息 + 对应的默认地址(关联 user 表和 address 表)。// 1. Mapper 接口定义自定义 SQL(注解方式)// 2. 调用// Mapper 接口(自定义 SQL + 条件构造器)// 调用:用条件构造器拼条件,自定义 SQL 做联表。

2026-01-21 12:39:43 958

原创 基于 Spring MVC + 阿里云通义千问的 AI 助手开发

创建AiService/*** AI助手核心服务接口*//*** 调用AI接口获取回答* @param conversationHistory 对话历史(包含上下文)* @return AI回复内容* @throws Exception 调用异常时抛出*/核心架构:基于 Spring MVC + 阿里云通义千问的前后端分离架构,通过 Session 管理对话历史,实现上下文记忆;关键特性:智能历史记录清理(限制 10 条)、完善的异常处理、安全的配置管理(API 密钥不硬编码);

2026-01-20 16:46:09 749

原创 零基础入门 WebSocket:从原理到 Java 实战

WebSocket 是一种基于 TCP 的应用层协议,能在单个 TCP 连接上建立全双工通信(客户端和服务端可同时发消息,像打电话一样),而 HTTP 是半双工(客户端发请求,服务端才响应,像对讲机)。核心概念:WebSocket 是全双工通信协议,通过一次握手建立长连接,解决 HTTP 实时通信痛点;Java 实现:Spring Boot 中通过开启支持,自定义处理核心通信逻辑;关键要点:会话管理需保证线程安全(用),消息收发要判断连接状态,生产环境需处理跨域和重连。

2026-01-20 16:24:10 913

原创 Java项目密码加密实现详解

核心实现:基于 jbcrypt 依赖,通过封装工具类实现(加密)和(验证)两大核心方法,BCrypt 算法会自动处理盐值生成和比对。安全要点:设置合理的工作因子(12-14)、加密前校验密码非空、数据库字段长度至少 60 位,避免明文 / 简单哈希存储密码。使用原则:加密只执行一次,验证时直接调用方法,无需手动处理盐值,保证代码简洁且安全。通过这套实现方案,能够满足绝大多数 Java 项目的密码安全存储需求,符合行业最佳实践,有效抵御常见的密码破解攻击。

2026-01-20 16:17:53 776

原创 常用的 Linux 命令

这类命令用于创建、查看、移动、删除文件或目录,是日常操作的基础。这类命令用于读取、修改文件内容,适合查看日志、配置文件等场景。Linux 是多用户系统,这类命令用于管理用户、修改文件权限。- 压缩 / 解压文件(Linux 最常用的压缩格式是。这类命令用于监控系统状态、查看进程、管理服务。用于测试网络连通性、查看网络配置、下载文件等。- 删除文件或目录(慎用!- 修改文件 / 目录的所有者和所属组。- 查看文件全部内容(适合小文件)- 分页查看文件内容(适合大文件)- 查看文件开头 / 结尾内容。

2026-01-17 14:51:23 836

原创 Java 中所有常用的流相关知识

Java 流分两大体系:I/O 流(处理文件 / 网络等数据读写,核心是字节流、字符流)、Stream 流(处理集合 / 数组的流式加工,Java 8 + 新增);I/O 流核心规则:字节流处理所有数据,字符流仅处理文本;缓冲流(BufferedXXX)效率更高,推荐优先使用;流必须关闭(try-with-resources 自动关闭);Stream 流核心规则:使用步骤是 “创建流→中间操作→终止操作”;不修改原集合、一次性使用、延迟执行;终止操作是触发处理的关键。

2026-01-15 15:50:23 779

原创 AOP 切入点表达式

语法符号含义示例通配符,匹配 “任意一个”(返回值任意)、delete*(方法名以 delete 开头)..通配符,匹配 “任意层级 / 任意个数”(com 下任意层级的 Service 类)、(..)(任意参数)逻辑或,匹配任意一个表达式表达式 A表达式 B&&逻辑与,匹配同时满足的表达式表达式 A && 表达式 B!逻辑非,匹配不满足的表达式!表达式 A这段代码的核心是通过@Pointcut定义切入点,最终仅匹配和两个方法;

2026-01-12 09:49:19 752

原创 SpringBoot 自动装配的核心原理

SpringBoot 自动装配的核心优势是 “允许开发者自定义配置覆盖默认值”,核心机制是。创建自动配置类(如),使用注解控制生效条件;在文件中添加该类的全限定名;打包为 starter 依赖,其他项目引入后即可自动装配。@ConditionalOnClass(MyService.class) // 存在MyService时生效@Bean核心入口通过触发自动装配;配置加载:从加载所有候选自动配置类;条件过滤:通过系列注解(如)筛选有效配置;核心特性。

2026-01-11 16:38:37 604

原创 5 种方式快速创建 SpringBoot 项目

新手首选:IDEA 对接阿里云镜像(速度快、操作简单),一键生成标准化项目;定制需求:Maven 空项目改造(手动控制依赖和配置,灵活度高);工具偏好:习惯 Eclipse 用 STS,习惯 IDEA 用内置 Spring Initializr;核心共性:无论哪种方式,SpringBoot 项目的核心是「启动类 +@SpringBootApplication 注解 + 核心依赖」,掌握这三点即可快速搭建项目。

2026-01-11 09:19:38 1115

原创 EasyExcel 实现 Excel 导入导出

使用注解映射 Excel 表头与字段,/*** 用户Excel导出实体*/@Data@ExcelProperty("用户ID")@ExcelProperty("用户名")@ExcelProperty("手机号")@ExcelProperty("创建时间")@ExcelProperty(value = "状态", converter = StatusConverter.class)// 0-禁用 1-启用/*** 状态转换器*/@Override。

2026-01-10 11:08:06 969

原创 文件上传:阿里云oss

通用性:封装工具类,统一处理文件校验、客户端创建、文件名生成等基础逻辑;多场景适配:支持单文件、多文件、大文件分片、带进度条上传,覆盖音频、封面、专辑文件等所有上传需求;安全性与性能:通过密钥解耦、唯一文件名、分片上传容错、CDN 加速等,保证上传安全与访问效率。该方案不仅解决了本地存储的痛点,还可无缝迁移至其他分布式项目,是 Java Web 项目集成云存储的典型实践。

2026-01-10 11:00:41 361

原创 哈米音乐项目知识点

项目封装了通用分页工具类,适配所有业务模块的分页需求,核心是Page工具类和Query查询对象。Ham Music 项目在 MyBatis 逆向工程基础上,扩展了通用 Mapper 和分页功能,解决了逆向工程仅生成基础 CRUD 的局限性。文件上传通过实现,UUID 避免文件名冲突;Spring MVC 配置注解驱动、JSON 转换器、视图解析器,完成请求分发与数据转换;MyBatis 结合 Druid 连接池实现数据库操作,自定义分页工具类适配通用分页;

2026-01-10 10:49:24 868

原创 java面试题整理

原理:基于责任链模式,通过拦截器拦截Executor、StatementHandler、ParameterHandler、ResultSetHandler四大对象的方法。equals()、hashCode()、toString()、clone()、wait()、notify()、finalize()等。Mybatis是一款持久层框架,通过XML或注解配置SQL,灵活映射结果到Java对象,支持动态SQL、插件扩展等。全自动(如Hibernate):自动生成SQL,开发效率高但灵活性低。切入点:匹配连接点;

2025-12-20 16:46:28 567

原创 12 Git 多人协作(完整版工作流)

适用场景:3-20 人小型团队,使用 GitHub / Gitee / GitLab 托管代码示例命令均以 GitHub 为例,GitLab / Gitee 完全通用,只需换远程地址。

2025-12-14 17:42:28 355

原创 Git 面试题全面汇总

这份全面的Git面试题汇总涵盖了从基础到高级的所有重要知识点,建议结合实际操作进行学习和准备。:merge vs rebase的区别。:push、pull、fetch的区别。:描述你使用Git解决的具体问题。:说明你在团队中的Git使用经验。:展示你解决Git问题的能力。:工作区、暂存区、版本库。:至少掌握30个常用命令。:实际练习合并冲突解决。

2025-12-11 17:03:05 554 1

原创 本地仓库首次推送的 4 种标准姿势(HTTP / SSH × Gitee / GitHub)

适用系统:Windows 10/11(Git Bash)、macOS、Linux 全系列前置条件:已安装 Git ≥ 2.30,本地至少有一次git commit。

2025-12-11 11:22:41 1050

原创 从入门到精通:Git 全方位实战指南

本文系统介绍Git分布式版本控制系统的核心概念与实战技巧。从Git的诞生背景和分布式优势切入,详细解析工作区、暂存区、仓库三大核心区域的工作原理。提供从安装配置、基础命令(add/commit/push)到分支管理、冲突解决的完整操作指南,并涵盖远程仓库协作、.gitignore配置等实用技能。特别强调团队开发中的分支策略与常见问题排查方法,帮助开发者建立规范的Git工作流程。通过图形界面工具与IDE集成方案,让Git使用更加高效便捷。文章建议新手先掌握基础命令,再逐步进阶到复杂场景,通过实践培养Git使用

2025-12-06 17:41:55 661

原创 一文搞懂 RBAC 权限模型:从概念到实战

本文介绍了后端开发中基于角色的访问控制(RBAC)模型。RBAC通过解耦用户与权限,以角色作为中间桥梁,解决了传统权限管理的扩展性和维护性问题。文章解析了RBAC的4个核心组件(用户、角色、权限、会话)和3层关联关系,并介绍了3种常见版本(基础版、角色层级版、约束版)。针对Java SSM框架,详细阐述了数据库设计(5张核心表)和代码实现步骤,包括实体类设计、Mapper层查询、Service层逻辑以及通过拦截器实现权限校验。最后总结了RBAC高扩展性、易维护等优点,建议初学者从RBAC0基础版入手,根据业

2025-12-06 11:12:43 1027

原创 SpringMVC框架上

摘要:SpringMVC是基于Java的轻量级Web框架,采用MVC设计模式实现请求处理、业务逻辑与视图展示的解耦。其核心优势包括注解驱动开发、自动参数绑定和拦截器机制,支持三层架构(表现层/业务层/持久层)与RESTful风格。典型开发流程包含:1)配置DispatcherServlet前端控制器;2)通过@RequestMapping映射请求;3)视图解析器处理响应。特色功能涵盖文件上传、类型转换及AOP式拦截器,能与Spring容器无缝集成,显著提升Web开发效率。

2025-11-22 12:08:09 795

原创 Java面试中等测试题

Spring Bean容器是Spring框架中用于管理Bean(即Java对象)的容器,负责Bean的创建、配置、组装和管理。Spring IOC(控制反转)容器是Bean容器的具体实现,它通过依赖注入(DI)机制来实现控制反转。实际上,Spring Bean容器和Spring IOC容器是同一个概念,通常互换使用,但IOC容器更强调控制反转的原则。Spring DI(依赖注入)是IOC的具体实现方式,指容器在运行时动态地将依赖对象注入到目标对象中。DI减少了代码的耦合性,提高了可测试性和可维护性。

2025-11-15 15:59:44 784

原创 Spring 框架核心技术详解:AOP、JDBC 模板与事务管理

AOP 最佳实践切面类专注于单一职责(如日志切面只处理日志,事务切面只处理事务)切入点表达式精准匹配(避免过度增强影响性能)优先使用注解方式(减少 XML 配置,提高开发效率)JDBC 模板最佳实践结合连接池使用(如 Druid、HikariCP),避免频繁创建连接复杂查询使用RowMapper,简单查询用批量操作使用,减少 SQL 执行次数事务管理最佳实践事务注解加在 Service 层(而非 Dao 层,确保业务逻辑完整性)明确设置传播行为(如跨服务调用用。

2025-11-12 21:56:35 623

原创 Spring 框架核心技术全解析

Spring 是 2003 年兴起的轻量级 Java EE 一站式框架,由 Rod Johnson 创建。它以 IOC 和 AOP 为核心,解决了业务逻辑层与其他层的耦合问题,支持分层开发(表现层、业务层、持久层),且能无缝集成 MyBatis、Struts2 等主流框架。Spring 上半部分核心围绕 IOC/DI 展开,关键在于理解 “对象由容器管理,依赖由容器注入” 的思想。小型项目:XML 配置简单直观。中大型项目 / 微服务:纯注解开发更高效,是 Spring Boot 的基础。

2025-11-08 13:59:39 738

原创 懂事务与数据库连接池

事务保证数据一致性,核心是 ACID 特性和隔离级别配置,实际开发中需结合 JDBC 或框架(Spring)使用。连接池优化系统性能,Druid 是最优选择,通过配置文件 + 工具类可快速集成。两者结合时,需重点关注连接的唯一性和归还时机,避免事务失效或连接泄漏。掌握这两项技术,能解决大部分数据库相关的性能和数据一致性问题,是 Java 后端开发的必备技能。

2025-11-08 13:53:11 1053

原创 Spring面试题

答案一级缓存:SqlSession级别,默认开启,在同一个SqlSession中有效。二级缓存:Mapper级别,需手动开启,跨SqlSession共享数据。答案接口绑定指MyBatis将Mapper接口与XML映射文件关联,通过动态代理实现。好处是无需编写实现类,代码更简洁。答案B标签可以定义在A标签后面,MyBatis解析时会将整个XML文档加载后再处理引用。答案MyBatis是持久层框架,封装了JDBC,通过XML或注解配置SQL,支持动态SQL和缓存,简化数据库操作。答案。

2025-11-04 15:03:37 908

原创 Spring 框架IOC和AOP

Spring 是一个分层的 JavaSE/EE 全栈轻量级开源框架,核心解决业务逻辑层与其他层的耦合问题,将面向接口的编程思想贯穿整个系统。它不是要替代现有技术,而是通过整合各类优秀框架(如 MyBatis、Struts2 等),为开发者提供一套统一的开发规范。简单来说,Spring 就像一个 "超级工厂",帮你管理所有对象的创建和依赖关系;IOC(控制反转)和AOP(面向切面编程)。IOC(Inverse of Control,控制反转)是 Spring 的核心设计思想 ——

2025-11-03 22:26:08 823

原创 一文搞定 JDBC 事务与数据库连接池

事务是数据库提供的原子性操作单元一组 SQL 操作要么全部成功,要么全部失败,不存在 "部分执行" 的中间状态。最经典的例子就是「转账」:冠希给美美转 1000 元,需要执行两步操作 —— 给冠希扣 1000 元、给美美加 1000 元。如果第一步成功但第二步失败(比如数据库突然崩溃),就会出现 "钱扣了但没到账" 的异常,而事务能避免这种情况。事务:通过Connection的commitrollback控制,核心是 ACID 特性,隔离级别解决并发问题;连接池。

2025-11-03 22:18:03 903

原创 一文搞懂池化:从原理到实践,让资源利用效率翻倍

简单来说,池化(Pooling)是一种 “提前准备、重复利用” 资源的设计模式,本质是对 “昂贵资源” 的生命周期进行统一管理,避免频繁创建和销毁带来的性能损耗。它的思路很像生活中的 “共享充电宝柜”:商家不会等用户需要时才临时生产充电宝,而是提前准备一批充电饱满的设备存放在柜中;用户用的时候直接取走,用完后放回柜中充电,供下一个用户继续使用 —— 既省去了 “按需生产” 的高成本,又避免了用户等待的时间。初始化池。

2025-11-02 22:29:28 553

原创 深入 Maven:从仓库配置到私服架构的进阶实践

通过本文的学习,我们从 “仓库配置” 到 “依赖进阶”,再到 “企业级私服搭建”,系统掌握了 Maven 的进阶核心能力。仓库是依赖管理的基础,依赖范围与阻断解决了实际开发中的冲突问题,生命周期与插件揭示了构建背后的执行逻辑,而私服则是企业团队协作的关键支撑。至此,我们已覆盖 Maven 从基础到进阶的核心知识点,从个人开发到团队协作的场景均能应对。

2025-10-29 20:19:21 1081

原创 从零开始学 Maven:Java 项目管理的高效解决方案

通过本文的学习,我们掌握了 Maven 的核心价值(标准化构建、自动化依赖管理)、安装配置步骤,以及基础项目的实战流程。Maven 的 “约定优于配置” 理念,让项目结构更统一,团队协作更高效;而依赖管理机制,则彻底告别了手动下载 JAR 包的繁琐。

2025-10-29 20:10:42 664

原创 IDEA使用教程

作为一名从 Eclipse 转用 IDEA 的 Java 开发工程师,我深刻理解两种工具操作逻辑的差异。建议在学习 IDEA 时暂时忘掉 Eclipse 的操作习惯,从零开始适应这款更高效的开发工具。本文将从下载安装到进阶技巧,带你完整掌握 IDEA 的 Java 开发用法。以以下代码为例演示调试流程:调试步骤:建议你先按照本文步骤完成 IDEA 的安装和基础配置,再通过实际项目练习快捷键和调试技巧。

2025-10-25 17:35:01 1149

空空如也

空空如也

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

TA关注的人

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