自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis-Plus使用详解

MyBatis是一款优秀的需手动编写大量基础CRUD代码,复杂查询需手写XML,开发效率受限。

2025-04-06 11:10:13 936

原创 LocaDate、LocalTime、LocalDateTime

Java的时间处理在早期版本中存在诸多问题(如 java.util.Date 和 java.util.Calendar 的混乱设计),但Java8引入了引入了全新的 java.time包(基于JSR 310),提供了更清晰、线程安全且强大的时间处理API。

2025-04-04 23:18:25 587

原创 WebSocket

WebSocket是一种基于TCP的网络通信协议,专为设计。它允许客户端和服务器在上双向传输数据,克服了传统HTTP协议单向请求-响应模式的局限性,适用于需要的场景(如聊天、游戏、股票行情、实时数据推送等)。

2025-04-03 19:06:36 1270

原创 Spring Task 定时任务

在Bean的方法上使用@Scheduled注解,指定执行策略。@Service// 固定速率(每隔5秒执行一次,不考虑任务执行时间)// 逻辑代码// 固定延迟(任务结束后等待3秒再执行下一次)// 逻辑代码// Cron表达式(每天12点执行)")// 逻辑代码@Scheduled参数详解参数说明fixedRate固定频率(单位:毫秒),无论前一次任务是否完成,按固定时间间隔执行fixedDelay固定间隔(单位:毫秒),前一次任务结束后,延迟指定时间再执行cron。

2025-04-02 14:58:29 360

原创 软件测试的分类划分详情

单元测试后,将各单元组合成完整的体系,测试软件单位之间的接口是否正确、数据能否正常传递。运行验收测试(OAT):验证系统的部署和运维流程(如备份、恢复)。验证代码逻辑的正确性(如分支覆盖、逻辑覆盖);Selenium(UI自动化)、JMeter(性能测试)、Appium(移动端)等。介于黑盒和白盒之间,部分了解代码结构(如接口定义、架构设计),但不深入代码细节。性能、安全、兼容性、可靠性(非功能测试)非功能测试(如性能、安全、兼容性),针对软件的最小可测试单元(如函数、类、方法等)进行的测试。

2025-04-02 11:10:39 977

原创 Spring Cache:简化缓存管理的抽象框架

Spring Cache是Spring框架提供的,通过注解和自动化配置,简化应用中对缓存的操作,支持多种缓存实现(如Redis、Ehcache、Caffeine)。

2025-03-29 21:50:26 822

原创 MyBatis之动态SQL

动态SQL是一种根据运行时条件动态生成和执行SQL语句的技术。与静态SQL(在代码中固定写死的SQL)不同,动态SQL允许程序根据不同输入或条件动态灵活构建SQL,适用于需要灵活查询、参数化条件或复杂业务逻辑的场景。通过条件判断、循环等逻辑,灵活拼接SQL字段,避免硬编码复杂的查询或更新逻辑。多条件查询、批量操作、动态字段更新等。

2025-03-26 22:34:48 984

原创 @RequestParam注解

RequestParam是Spring MVC中用于的注解。

2025-03-23 11:17:31 1052

原创 视图对象(View Object, VO)

通常用于在应用层之间传输数据,特别是在MVC架构中,用于将数据从服务层传递到视图层。例如,当从数据库查询出多个实体类的数据,需要组合成一个对象返回给前端时,可以使用VO来封装这些数据,避免暴露数据结构,同时适应前端展示的需求。在Spring框架中,VO可用于REST API的响应对象,包含前端需要的所有字段,可能组合多个实体类的属性。

2025-03-23 09:19:43 614

原创 Spring常用注解汇总

Component@Service@Bean@Autowired@Autowired@Bean@Primary定义创建Bean的模式(方法上得有@Bean)类型包括:Singleton、Prototype、Request、Session。

2025-03-21 22:57:40 833

原创 ThreadLocal

线程:是操作系统能够调度的最小执行单元,一个进程可以包含多个线程。多线程:指程序中存在多个线程并发执行,以提高 CPU 利用率或实现异步任务处理。并发问题:当多个线程共享同一资源时,可能引发竞态条件(Race Condition)、数据不一致等问题。ThreadLocal 是 Java 中用于实现线程封闭的工具类,它能为每个线程创建一个独立的变量副本,不同线程之间互不干扰。简单来说,ThreadLocal 让每个线程都能拥有自己的“私有”数据。假设有一个储物柜(

2025-03-18 00:07:46 980

原创 数据传输对象 DTO

数据传输对象(DTO, Data Transfer Object)是一种设计模式,用于在不同系统或应用层之间封装和传输数据。它通常用于解耦领域模型(如数据库实体)和外部接口(如API请求/响应),避免直接暴露内部数据结构,同时优化网络传输效率。

2025-03-16 21:18:01 633

原创 Spring Validation参数校验

步骤1:定义注解String message() default "手机号格式不正确";Class<?Class<?步骤2:实现校验逻辑@Override步骤3:使用自定义注解@Phone。

2025-03-16 10:55:59 425

原创 Spring MVC 拦截器(Interceptor)

Spring MVC拦截器(Interceptor)是一种在请求处理的不同阶段(如Controller方法执行前、执行后、视图渲染后)插入自定义逻辑的机制,常用于实现权限验证、日志记录、性能监控等横切关注点。

2025-03-16 09:18:51 526

原创 SpringBoot 自动配置原理

定义自己的 Bean:Spring Boot 优先使用用户定义的 Bean(会失效)。@Bean// 自定义 DataSource,覆盖自动配置创建自动配置类:@Bean注册配置类到 META-INF/xxx.imports在主启动类上添加了SpringBootApplication注解,这个注解组合了EnableAutoConfiguration注解。

2025-03-12 23:19:37 842

原创 LeetCode Hot100刷题——对称二叉树

给你一个二叉树的根节点root, 检查它是否轴对称。

2025-03-12 19:43:50 375

原创 SSM框架

SSM 框架是 Java Web 开发中广泛使用的经典组合,由和三个开源框架整合而成,适用于构建中大型企业级应用。

2025-03-10 23:37:04 1428

原创 LeetCode Hot100刷题——反转链表(迭代+递归)

处理到链表末尾时直接返回。

2025-03-09 22:54:31 1371

原创 Linux常用命令

补充:Linux主要目录介绍

2025-03-08 21:28:29 590

原创 MyBatis多表查询实现方式

MyBatis 的多表查询主要涉及关联查询(如一对一、一对多、多对多),可以通过。

2025-03-08 19:45:23 380

原创 软件测试基础必备(一)

软件测试的生命周期(Software Testing Life Cycle, STLC)是一个系统化的过程,旨在确保软件质量符合预期。

2025-03-08 19:33:08 953

原创 ResultMap

resultMap是 MyBatis 中用于的核心配置工具。它允许开发者灵活地定义数据库字段与 Java 对象属性之间的对应关系,尤其适用于字段名与属性名不一致、处理复杂对象关系(如嵌套对象或集合)等场景。

2025-03-07 19:23:32 463

原创 LeetCode Hot100刷题——回文链表

给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。

2025-03-05 21:32:23 460

原创 AOP(面向切面编程) AOP的动态代理技术

Spring AOP(面向切面编程)是Spring框架的重要特性之一,用于将横切关注点(如日志、事务、权限控制等)与业务逻辑解耦。(简单点说,AOP 就是把一些业务逻辑中的相同代码抽取到一个独立的模块中,让业务逻辑更加清爽。多个模块中重复出现的功能(如日志、事务),传统OOP难以直接复用,AOP通过横向抽取实现统一管理。:封装横切逻辑的模块(如日志切面)。类是对物体特征的抽象,切面就是对横切关注点的抽象。:程序执行的可插入点(如方法调用、异常抛出)。:通过表达式匹配需要增强的连接点(如@Before。

2025-03-05 12:22:21 858

原创 LeetCode Hot100刷题——两数相加(链表)

给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

2025-03-05 11:08:16 910

原创 Mybatis 的代理开发方式

/ 根据ID查询用户// 插入用户// 更新用户// 删除用户。

2025-03-03 20:25:29 574

原创 MyBatis的相应API

MyBatis 是一个优秀的持久层框架,其核心 API 围绕 SQL 会话管理、Mapper 接口绑定和 SQL 执行展开。常用API:SqlSessionFactory build(inputStream inputStream)通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象其中,Resources工具类帮助你从类路径下、文件系统或一个web URL中加载资源文件。配置与工具类:配置文件示例(mybatis-config.xml)总结:

2025-02-28 15:53:23 551

原创 Spring MVC 的执行流程

Controller执行具体的业务逻辑,可能会调用Service层,处理数据,并返回一个模型和视图(ModelAndView)对象。首先,用户发起一个HTTP请求到Web应用,这个请求会被前端控制器(DispatcherServlet)处理。接下来,DispatcherServlet会查询处理器映射器(HandlerMapping)来确定哪个控制器(Controller)会处理这个请求。之后,DispactherServlet会根据视图名称,通过视图解析器(ViewResolver)来解析具体的视图对象。

2025-02-27 17:47:37 1113

原创 令牌技术 JWT令牌

令牌(Token)是计算机安全领域中的一种凭证机制,用于验证用户身份或授权访问资源。它通常是一个字符串,携带了用户身份、权限或其他关键信息,服务端可通过验证令牌的合法性来判断请求的合法性。

2025-02-27 15:38:20 491

原创 蓝桥杯 报数游戏

从20,24,40,48,60,72,80,96,100,120可以看出,第奇数的位置是20的倍数,第偶数的位置是24的倍数,而202420242024很显然是一个偶数,说明第202420242024个位置上的数是24的倍数。假设n为第n个位置,由于20的倍数和24的倍数是交替出现的,例如当n=6时,即第6个位置上的数应该是24的3倍数(n/2)。前 10 个被报出的数是:20,24,40,48,60,72,80,96,100,120。这是一道结果填空的题,你只需要算出结果后提交即可。

2025-02-26 23:35:40 410

原创 LeetCode Hot100刷题——有效的括号(栈)

给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。

2025-02-26 16:49:55 566

原创 LeetCode Hot100刷题——搜索二维矩阵Ⅰ

获取矩阵的行数。

2025-02-24 17:17:16 1052

原创 LeetCode Hot100刷题——最小路径和(动态规划)

首先处理第一行和第一列,累加路径和,因为它们的路径是唯一的。

2025-02-23 18:03:21 670

原创 MyBatis——入门基础

MyBatis 是一个基于 Java 的持久层框架,它封装了 JDBC 的底层操作,提供了更简单的方式来执行 SQL 语句、映射结果集到 Java 对象,并管理数据库连接。:SQL 语句写在 XML 文件或注解中,与 Java 代码解耦。:将数据库查询结果自动映射到 Java 对象(POJO)。:支持动态生成 SQL 语句,适应复杂的查询需求。:无需依赖其他框架,易于集成到现有项目中。

2025-02-22 17:56:21 490

原创 Spring容器加载properties文件

在 Spring 中,加载properties文件是一种常见的操作,通常用于管理配置信息,比如数据库连接信息、系统参数等。Spring 提供了多种方式来加载properties文件,下面详细介绍几种常用的方法。

2025-02-18 23:40:29 258

原创 数据源 连接池

它是一个存储数据库连接的 “池子”。连接池负责创建、管理和维护数据库连接,当应用程序需要连接数据库时,直接从连接池中获取连接,使用完毕后再将连接归还给连接池,而不是每次都重新创建和销毁数据库连接。:封装数据库的配置信息(如URL、用户名、密码)。:应用需要时从池中获取,使用后归还,避免重复创建。:通过连接池避免频繁创建和销毁连接,提升性能。:初始化时创建一定数量的连接,放入池中。(事先实例化数据源,初始化部分连接资源)(使用完毕后将连接资源归还给数据源)(使用连接资源时从数据源中获取)

2025-02-18 17:15:12 372

原创 LeetCode Hot100刷题——爬楼梯

这个问题可以通过动态规划来解决,其核心思想是:到达第。阶方法数之和,因为最后一步可以是爬1阶或2阶。:由于每次只需要前两个状态的值,可以用两个变量。你有多少种不同的方法可以爬到楼顶呢?代替数组,将空间复杂度优化为 O(1)。1. 1 阶 + 1 阶 + 1 阶。阶楼梯的方法数等于到达第。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。

2025-02-17 18:29:34 255

原创 LeetCode Hot100刷题——全排列

给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以返回答案。

2025-02-16 23:52:45 1011

原创 LeetCode Hot100刷题——最长连续序列

给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。4最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。9。

2025-02-16 15:33:11 602

原创 LeetCode Hot100刷题——杨辉三角

每一行的生成都依赖于上一行的数据。通过获取上一行的数据。中间元素的值是上一行的左上方和右上方元素之和。边界元素(每行的第一个和最后一个)直接赋值为1。

2025-02-14 16:58:38 408

空空如也

空空如也

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

TA关注的人

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