自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 @RequestBody 和 @ResponseBody 的使用场景

收数据,用在方法参数上,接收请求体中的 JSON/XML 等数据并绑定到对象。发数据,用在方法上(或通过简化),将返回值转为 JSON/XML 写入响应体。两者通常配合使用,实现前后端通过 JSON 等格式进行数据交互(而非传统的表单提交+页面跳转)。

2025-11-14 19:13:26 548

原创 ConfigurationProperties详解

是Spring Boot中管理外部配置的核心工具,通过“配置文件→实体类→代码使用”的流程,实现了配置的集中管理和动态绑定,尤其适合多环境配置、复杂配置场景,大幅提升了配置的可维护性。

2025-11-08 18:57:17 774

原创 MyBatis-Plus 代码生成器

在目录下创建对应模板文件(如用于实体类);通过配置自定义模板路径:.templateConfig(builder -> {builder.entity("/templates/entity.java.vm") // 自定义实体类模板// 自定义Mapper模板})MyBatis-Plus 代码生成器通过简单配置即可生成全套开发代码,彻底告别手动编写模板代码的繁琐。其灵活的配置项支持自定义包结构、命名规则和模板,能适配不同项目的规范。

2025-08-13 12:04:01 1205

原创 MyBatis-Plus——SQL注入器

MyBatis-Plus的BaseMapper虽然提供了很多基础方法,但没有“删除全表数据”的deleteAll方法(可能是为了安全,避免误操作)。如果多个表都需要“删除全表”功能,总不能在每个Mapper里重复写SQL吧?这时候就需要SQL注入器:把deleteAll定义成“全局通用方法”,让所有继承BaseMapper的接口(比如StudentMapper、UserMapper)都能直接调用,不用重复开发。// 注入方法类:相当于定义一个"删除全表"的工具@Override。

2025-08-12 19:18:28 823

原创 MyBatis-Plus 自动填充功能详解

创建一个类实现// 交给 Spring 管理,让 MyBatis-Plus 能扫描到 @Component public class MyMetaObjectHandler implements MetaObjectHandler {/*** 插入操作时的填充逻辑。

2025-08-12 16:11:23 1330

原创 MyBatis-Plus 插件

除内置插件外,可通过实现接口开发自定义插件。@Override// 获取SQL语句System.out.println("执行SQL:" + sql);// 注册自定义插件@Bean// 自定义插件MyBatis-Plus 插件体系通过拦截 SQL 执行流程,提供了分页、防全表操作、乐观锁等实用功能,大幅简化了开发工作。分页插件需指定数据库类型,确保分页语句正确;防全表操作插件适合开发环境,防止误操作;乐观锁通过版本号机制解决并发冲突,需正确配置版本字段。

2025-08-11 12:08:07 1103

原创 MyBatisPlus插件原理

核心接口作用(类比工厂工位)核心方法Executor执行器(总指挥):负责SQL执行的整体调度,包括查询、更新、事务管理等query()update()commit()SQL处理器(执行者):负责与数据库交互,创建Statement对象、执行SQLprepare()query()参数处理器:负责给SQL中的占位符设置参数(Java对象→数据库类型)结果集处理器:负责将数据库返回的结果集转换为Java对象这四个接口覆盖了SQL执行的完整生命周期:从接收请求、处理参数、执行SQL到转换结果。

2025-08-10 16:15:24 611

原创 MyBatis-Plus 逻辑删除

逻辑删除通过标记字段实现数据“假删除”,既保障了数据安全,又简化了恢复操作,是核心业务数据的最佳删除方案。MyBatis-Plus 通过注解和全局配置,自动适配 CRUD 方法的 SQL 生成,无需手动编写特殊逻辑。

2025-08-10 13:51:54 836

原创 MyBatis-Plus ActiveRecord 模式

ActiveRecord 模式为 MyBatis-Plus 提供了一种更直观的数据库操作方式,通过实体类直接调用方法完成 CRUD 操作,简化了代码结构。其核心是让实体类继承Model类并实现主键方法,同时依赖 Mapper 接口提供底层支持。

2025-08-09 12:08:01 1104

原创 MyBatis-Plus ——CRUD实战

简化开发:内置CRUD方法,无需编写XML映射文件;功能丰富:支持分页、逻辑删除、自动填充等实用特性;无缝集成:与SpringBoot等框架完美兼容,引入后不影响现有工程。

2025-08-09 08:00:00 1187

原创 Lombok :消除冗余代码的利器

Lombok 通过注解机制,彻底消除了 Java 开发中的模板代码,让代码更简洁、开发更高效。核心注解包括@Data(一站式解决方案)、@Getter@Setter(属性方法)、@Builder(链式创建)等,覆盖了从 POJO 定义到日志、资源处理的全场景。

2025-08-08 14:46:44 907

原创 Spring Boot 核心原理

依赖管理:通过 Starter 和父工程实现“一键引入+版本兼容”;自动配置:基于条件注解动态生成配置,覆盖绝大多数场景;注解驱动整合配置、扫描和自动配置,减少模板代码。

2025-08-08 10:35:34 890

原创 Spring Boot 监控与日志管理实战

日志是排查问题的关键依据,Spring Boot 默认整合 Logback 日志框架,同时需注意规避 Log4j2 等组件的安全漏洞。通过获取日志对象,调用info()error()// 获取当前类的Logger实例logger.info("用户访问了printLog接口");// 信息级日志logger.error("模拟错误日志");// 错误级日志return "日志打印完成";

2025-08-08 09:58:52 1208

原创 Spring Boot 参数校验全指南

Spring Boot 会自动跳转至DOCTYPE html > < html lang = " en " > < head > < meta charset = " UTF-8 " > < title > 错误提示 </ title > </ head > < body > < h1 > 参数错误 </ h1 > < p > 请检查输入的参数是否符合要求 </ p > </ body > </ html >

2025-08-06 15:35:42 1380

原创 Spring Boot 整合 Thymeleaf

Spring Boot 对 Thymeleaf 有默认配置,可在spring:thymeleaf:prefix: classpath:/templates/ # 模板文件前缀(默认)suffix: .html # 模板文件后缀(默认)encoding: UTF-8 # 编码格式cache: false # 关闭缓存(开发环境推荐)servlet:content-type: text/html # 响应类型:关闭模板缓存,修改模板后无需重启项目即可生效(生产环境建议开启)。prefix和。

2025-08-05 18:46:53 1263

原创 Spring Boot 整合 Web 开发全攻略

spring:web:resources:# 自定义目录为 /suibian/,同时保留默认 /static/⚠️ 注意:自定义目录会覆盖默认配置,若需保留默认目录需手动添加。Spring Boot 整合 Web 开发通过自动配置和简化的组件注册方式,大幅降低了开发难度。本文介绍了 Web 组件注册(注解扫描与配置类两种方式)、静态资源管理(默认目录与自定义配置)以及动态页面开发(Thymeleaf 与 JSP),覆盖了 Web 开发的核心场景。实际开发中,推荐使用Thymeleaf。

2025-08-05 18:44:13 1174

原创 Spring Boot 中 YAML 配置文件详解

除了框架默认配置,还可在 YAML 中定义自定义配置,再通过代码读取使用。YAML 以其简洁的语法和强大的表达能力,成为 Spring Boot 配置的优选格式。掌握 YAML 的基础语法、数据类型映射及实战技巧,能显著提升配置文件的可读性和维护性。在实际开发中,建议结合管理复杂配置,并合理利用多环境配置和优先级规则,让配置更加灵活高效。

2025-08-05 12:41:03 1414

原创 Spring Boot 国际化(i18n)实现指南

国际化是指设计和开发应用程序时,使其能够适应不同语言、地区和文化习惯的过程。通过国际化,应用可以根据用户的语言偏好动态切换文本内容,包括界面标签、提示信息、错误消息等,同时还能处理不同地区的日期、时间、数字、货币等格式差异,为全球用户提供一致且友好的体验。例如,一款面向全球用户的电商应用,需要根据用户所在地区显示不同语言的商品描述、价格格式以及促销信息。通过上述步骤,我们可以在 Spring Boot 项目中轻松实现国际化功能,为全球用户提供多语言支持。从创建资源文件、配置。

2025-08-05 12:23:15 1069

原创 Spring Boot 热部署详解

热部署是指在应用程序运行状态下,修改代码后无需手动重启项目,系统会自动加载变更并生效。节省时间:避免频繁重启项目(尤其是大型项目,重启可能需要几分钟);保持状态:保留程序运行中的内存数据(如会话、缓存等),无需重新初始化;提升效率:即时反馈代码修改效果,缩短开发周期。Spring Boot 的热部署主要通过实现,它基于类加载器机制,仅重新加载修改过的类和资源,而非整个应用。

2025-08-05 11:22:20 1277

原创 一文读懂 Spring 中的 Bean 和 @Autowired 注入

先想一个简单的场景:你写了一个类,里面有处理用户逻辑的方法。在普通 Java 代码中,要使用它得自己new// 普通方式:自己创建对象但在 Spring 中,你不用手动new了。Spring 会帮你创建这个对象,并存放在一个“容器”里,这个被 Spring 容器“托管”的对象,就叫Bean。Bean 就是 Spring 容器管理的对象:不用自己new,由 Spring 负责创建和销毁。注册 Bean 有两种方式自己写的类:加@Service等注解;第三方类或复杂对象:用@Bean。

2025-08-05 11:05:59 778

原创 Linux入门与实战:从基础到实操全指南

Linux以开源、稳定、安全著称,是服务器、嵌入式、云计算等领域的核心系统。本文从基础概念到实操(安装、网络、命令、管理)覆盖核心知识,建议新手从命令行练习入手,结合实际场景(如搭建Web服务器、配置定时任务)加深理解,逐步掌握其强大功能。

2025-08-04 11:31:21 1114

原创 Java——Spring框架全面解析

Spring是一个开源框架,旨在简化企业级应用开发。它以IOC(控制反转)和AOP(面向切面编程)为思想内核,提供了从控制层到数据层的完整解决方案,并支持整合众多第三方框架(如MyBatis、Hibernate等)。简化代码,降低耦合度提供事务管理、日志等通用功能支持模块化开发,按需选择组件良好的兼容性和扩展性本文涵盖了Spring框架的核心知识点,从IOC容器到定时任务,通过通用化的代码示例展示了Spring的实战用法。

2025-07-25 16:46:47 1527

原创 Java——Spring中Bean配置核心规则:id、name、ref的用法与区别

在Spring框架的XML配置中,<bean>标签及其子标签<property>的配置是核心基础。初学者常对idnameref等属性的用法产生困惑,本文将系统讲解这些属性的作用、修改规则及配置原则,帮助开发者快速掌握Spring Bean的配置逻辑。

2025-07-23 20:27:57 907

原创 Java——深入解析 CGlib 与 JDK 动态代理:原理、区别与实践

/ 目标接口void add();// 目标类(实现接口)@OverrideSystem.out.println("执行UserDao的add方法");System.out.println("执行UserService的update方法");接口依赖:JDK 动态代理强制要求目标类实现接口,CGlib 无此限制。性能:在多次调用场景下,CGlib 效率更高(因避免了反射开销)。限制:CGlib 无法代理 final 类或 final 方法(子类无法重写)。

2025-07-23 19:37:34 770

原创 Java——MyBatis 核心特性全解析:从配置到高级用法

当 POJO 属性名与数据库列名不一致时,通过手动建立映射关系,解决自动映射失效问题。示例:数据库表teacher列名为tidtname,POJO 类Teacher属性为id-- 主键映射:POJO属性id对应列tid --> < result property = " teacherName " column = " tname " /> <!

2025-07-21 18:44:22 744

原创 Java——MyBatis注解开发详解

/ 查询所有用户// 根据ID查询// 新增用户(主键回填)keyProperty = "id", // 主键属性名keyColumn = "id", // 主键列名before = false, // 在insert后执行statement = "SELECT LAST_INSERT_ID()" // 获取自增主键的SQL// 修改用户// 删除用户当POJO属性名与数据库列名不一致时,需通过@Results和@Result// 定义自定义映射。

2025-07-21 18:32:06 444

原创 Java——MyBatis从入门到精通:一站式学习指南

MyBatis是一款半自动ORM(对象关系映射)框架,本质是对JDBC的封装。与全自动ORM框架(如Hibernate)不同,MyBatis需要开发者手动编写SQL语句,但免除了JDBC中繁琐的连接管理、参数设置和结果集解析工作。支持自定义SQL,便于复杂查询和性能优化强大的结果映射能力,自动完成数据库记录与Java对象的转换轻量灵活,易于集成Spring等主流框架适用于高并发、大数据量的互联网项目// 省略getter、setter和toString方法。

2025-07-21 18:29:07 1220

原创 Java——Spring框架(scope)

单例:全局唯一实例,适合无状态、复用性高的Bean,默认且高效。多例:每次请求新实例,适合有状态、线程敏感的Bean,需注意资源管理。

2025-07-21 17:20:02 571

原创 IDEA 2020.1版本起下载JDK

在Java开发中,JDK(Java Development Kit)是不可或缺的基础工具,而IntelliJ IDEA作为一款强大的Java集成开发环境,为开发者提供了诸多便捷功能,其中就包括直接从IDEA下载JDK。那么从哪个版本开始IDEA支持这一便捷操作,具体步骤又是什么呢?下面将为大家详细介绍。

2025-07-18 23:32:24 635

原创 IDEA 中 Maven 配置:当前项目与新项目的统一设置方法

当前项目配置:解决已打开项目的环境问题,通过操作。新项目默认配置:通过统一后续项目的环境,一劳永逸。

2025-07-18 20:03:11 1442

原创 Maven 配置文件核心配置:本地仓库、镜像与 JDK 版本

Maven 的核心配置文件是,它负责管理 Maven 的全局行为,包括本地仓库位置、远程仓库镜像、JDK 版本等关键信息。默认位置(影响所有项目)(仅影响当前用户,优先级更高)其中指 Windows 系统的用户目录(如C:\Users\用户名本地仓库是 Maven 存储下载依赖的文件夹,默认路径为。当项目需要依赖时,Maven 会先从本地仓库查找,若不存在则从远程仓库下载并缓存到本地。通过修改自定义本地仓库路径,节省系统盘空间并便于迁移;配置阿里云镜像,解决中央仓库访问慢的问题;

2025-07-18 19:56:09 1038

原创 IDEA 2024.1 配置 MyBatis Generator 详细教程

通过 Maven 插件运行 MyBatis Generator 是最简便的方式,双击即可完成代码生成;核心配置文件需正确指定数据库连接和生成路径;遇到问题时,优先检查控制台日志和配置文件中的数据库连接、表名等关键信息。

2025-07-18 18:49:56 1241

原创 解决 IDEA 中 XML 文件的 “URI is not registered” 报错

解决优先通过Settings手动添加 DTD 约束,确保本地有正确的 DTD 文件;务必检查 URI 拼写和网络状态,避免因地址错误或网络问题导致注册失败;对于常用框架(如 MyBatis、Spring)的 DTD,建议提前下载并注册,减少重复报错。通过以上方法,可快速解决 IDEA 中 DTD 约束的 URI 注册问题,保证 XML 配置文件正常解析。

2025-07-18 18:15:26 1281

原创 Java——可序列化

实现序列化的对象可以被转换为字节流,随后在需要时重新恢复为原始对象(反序列化)。接口,因为缓存可能将对象存储到内存外(如文件、Redis)。接口并处理版本控制,可以安全、高效地实现对象的持久化和网络传输。一个标记接口(无方法),类实现它表明该类的对象可以被序列化。序列化过程涉及反射和字节转换,频繁操作可能影响性能。序列化是Java中对象跨环境传输的基础机制,通过实现。标记不需要序列化的字段,反序列化后该字段值为。(引用类型)或默认值(基本类型)。一致,否则可能导致反序列化失败。)字段都会被自动序列化。

2025-07-16 20:29:33 374

原创 Java——MyBatis缓存

在MyBatis中,一级缓存和二级缓存是提升查询性能的重要机制,它们通过缓存查询结果减少对数据库的访问。

2025-07-16 20:22:58 977

原创 mappers

mappers>标签是MyBatis连接Java接口与SQL语句的“桥梁”,通过配置XML文件路径、接口类或包扫描,让MyBatis能够正确加载映射关系。根据项目中SQL的编写方式(XML或注解)选择合适的配置方式即可。

2025-07-16 15:09:28 497

原创 Servlet

Servlet 是 Java 技术中用于开发的核心组件,它运行在 Web 服务器(如 Tomcat、Jetty)上,负责处理客户端(如浏览器)的 HTTP 请求,并返回响应。简单来说,Servlet 是 Java 实现的“Web 后台程序”,可动态生成网页内容或处理业务逻辑。

2025-07-14 20:06:02 769

原创 Acwing: Hash表

(1)使用情景:将一个值域比较大的集合,映射到从0到n(n是10^5~~10^6的级别,比较小)(2)上面模的那个数尽可能是质数,而且尽可能离2的整数幂比较远,此时发生冲突的概率最小(3)处理冲突(值域比较大,在映射时可能对应同一个值)的方式有两种,开放寻址法和拉链法(4)两种方法在实现删除操作的话,都是设一个bool数组,在需要删除的元素中做一个标记。

2024-05-05 14:44:27 1182 2

原创 acwing:Trie树,并查集,堆

1.定义:高效地存储和查找字符串例:(标记表示在此处有一个以该字母结束的英文单词)2.例题:插入和查找字符串在集合中出现了多少次int son[N][26], cnt[N]//表示以p结尾的单词数, idx;int p = 0;str[i];i ++ )//将英文字母映射到0~25if (!//如果不存在则插入cnt[p] ++;int p = 0;str[i];i ++ )if (!

2024-05-05 11:25:54 719 2

原创 acwing:单链表,双链表,邻接表,栈,队列

/ head 表示头结点的下标// e[i] 表示节点i的值// ne[i] 表示节点i的next指针是多少// idx 存储当前已经用到了哪个点// 初始化head = -1;idx = 0;// 将x插到头结点// 将x插到下标是k的点后面// 将下标是k的点后面的点删掉int main()int m;cin >> m;init();int k, x;char op;cin >> op;

2024-04-29 20:44:04 541

空空如也

空空如也

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

TA关注的人

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