- 博客(25)
- 收藏
- 关注
原创 Spring含大厂高频面试题(详细+图片讲解)
Spring框架中单例Bean本身不保证线程安全,若存在状态修改需手动同步;AOP通过切面实现日志、事务等横切关注点的解耦,事务基于AOP动态代理实现,但受非public方法、异常捕获、未配置rollbackFor等因素影响可能失效。Spring Bean生命周期涵盖实例化、依赖注入、初始化及销毁,循环依赖通过三级缓存机制解决,构造器循环依赖则需@Lazy延迟加载。SpringMVC请求由DispatcherServlet分发,经HandlerMapping、Adapter处理后返回视图;SpringBoo
2026-10-13 08:46:02
146
原创 MySQL 面试集合(含大厂)
通过运维监控(如Skywalking)或开启MySQL慢查询日志(设置阈值,如2秒)可定位慢SQL。使用EXPLAIN分析执行计划,检查索引命中、扫描类型及回表情况。基于B+树的聚簇与非聚簇索引结构,避免索引失效(如不满足最左匹配、字段运算等)。优化策略包括使用覆盖索引、合理创建复合索引、避免SELECT *、分页优化(如基于ID子查询)、遵循ACID特性及MVCC机制保障隔离性。主从复制依赖Binlog、RelayLog实现数据同步,分库分表则通过垂直与水平拆分缓解性能瓶颈。
2026-10-11 22:49:34
335
原创 Redis面试题集合整理(含大厂面经)
本文围绕Redis面试高频问题展开,系统阐述了缓存穿透、击穿、雪崩的成因与解决方案,重点介绍布隆过滤器、分布式锁(Redisson)、双写一致性(Canal)、持久化(RDB/AOF)、过期与淘汰策略等核心机制。同时深入解析主从同步、哨兵模式、分片集群及I/O多路复用原理,结合项目实践说明高可用架构设计与性能优化思路,全面展现对Redis底层原理与工程应用的深刻理解。
2026-10-11 22:32:50
352
原创 解决jdk17版本与seata冲突问题
JDK17的模块化限制导致反射访问java.lang包异常,原因是项目使用了较老的cglib-3.1.jar未适配JDK9+模块化。解决方案:在运行配置中添加VM参数--add-opens java.base/java.lang=ALL-UNNAMED来解除模块访问限制。
2026-03-17 18:36:38
114
原创 解决idea2024版本Services栏没有显示Springboot窗口问题
【摘要】针对SpringBoot项目在IDEA的Services栏不显示SpringBoot窗口的问题,可通过修改.idea/workspace.xml文件解决。具体步骤为:在<RunDashboard>组件的<set>标签内添加<option value="SpringBootApplicationConfigurationType"/>配置项,保存后重启IDEA即可恢复正常显示。该方法能快速修复SpringBoot应用在开发工具中的可视化监控界面缺
2026-03-08 21:17:03
413
原创 解决:该虚拟机似乎正在使用中. 如果该虚拟机未在使用,请按“获取所有权(T)“按钮获取它的所有权.否则,请按“取消(C)“按钮以防损坏. 配置文件: .vmx
摘要:虚拟机无法启动可能是因为目录被锁定。解决方法为:进入虚拟机所在目录,删除其中的.vmx.lck文件夹,然后重新打开虚拟机即可恢复正常使用。该方法简单有效,适用于解决虚拟机被锁定导致无法启动的问题。
2026-01-27 19:57:53
208
原创 Mybatis-Plus超级实用的多种功能用法
MyBatis-Plus是一款基于MyBatis的增强型ORM框架,遵循"只做增强,不做改变"的设计理念。它通过内置通用Mapper/Service简化了CRUD操作,支持Lambda表达式构建查询条件、自动分页、逻辑删除等功能。框架提供代码生成器快速生成基础代码,并支持多种插件如分页、乐观锁等。核心优势包括无侵入性、高效减少重复代码、保留MyBatis灵活性。快速入门只需引入依赖、配置数据源和实体类注解,继承BaseMapper即可获得基础CRUD能力。此外还提供IService接口封
2026-01-25 18:52:52
1606
原创 学习javaweb中idea创建servlet的三种方式
本文介绍了使用IntelliJ IDEA创建Servlet项目的完整流程,包括三种实现Servlet的方式:1)创建空项目并添加Web模块;2)配置Tomcat服务器;3)实现Servlet接口方式,通过配置web.xml映射URL;4)继承GenericServlet类简化开发;5)推荐使用继承HttpServlet类的方式,通过注解配置更简便。重点演示了每种方式的代码实现和web.xml配置方法,并指出第三种方式(继承HttpServlet)是开发中最推荐的做法。
2025-12-01 16:58:20
750
原创 基于若依(RuoYi)框架实现帝可得后端新增工单管理系统总结
本文介绍了一个售货机工单管理系统的设计与实现。系统分为运维工单(投放、撤机、维修)和运营工单(补货)两类,采用四张数据库表进行管理。重点阐述了工单创建的接口设计、参数校验流程和核心业务逻辑,包括设备状态检查、工单类型验证、员工区域匹配等校验规则。特别说明了使用Redis实现自增工单编号的技术方案,确保每日工单编号从0001开始递增。系统采用分层架构实现,包含Controller、Service和Mapper层,通过事务管理保证数据一致性。补货工单需额外处理货道商品信息,体现了系统对业务场景的完整覆盖。
2025-11-27 22:31:07
1668
原创 生成、解析Excel的开源神器——EasyExcel
EasyExcel是阿里巴巴开源的高效Excel处理工具,相比Apache POI等传统框架,能显著降低内存消耗(3M文件仅需几MB内存)。文章介绍了EasyExcel的基本信息、Maven依赖集成方法,以及通过注解方式实现Excel导出的示例。关键点包括:1.通过@ExcelProperty等注解控制导出格式;2.提供简单的导入导出API;3.解决了POI处理大文件时的内存溢出问题。该工具特别适合需要处理大数据量Excel文件的Java应用场景,能有效提升系统性能和稳定性。
2025-11-26 08:18:19
887
原创 X-File-Storage实现多平台文件上传功能
X-File-Storage是一个基于Java/SpringBoot的文件存储抽象框架,旨在解决项目中多存储源兼容问题。通过统一接口适配不同存储服务(如阿里云OSS、腾讯云COS等),实现业务代码与具体存储平台的解耦。集成步骤包括:1)引入依赖;2)配置存储平台参数;3)添加启动注解@EnableFileStorage。上传示例展示了如何通过FileStorageService实现文件上传至OSS,并返回文件URL等信息。该框架简化了存储平台切换,提高了代码可维护性。
2025-11-22 15:58:45
801
原创 阿里云OSS实现文件上传功能(新手教程+超级详细)
阿里云OSS对象存储服务使用指南 本文详细介绍了阿里云OSS对象存储服务的配置和使用方法。主要内容包括:注册阿里云账号并开通OSS服务、创建存储空间Bucket、配置AccessKey环境变量、Java SDK的集成方法,以及通过工具类实现文件上传接口的开发流程。文章提供了完整的代码示例,展示了如何将文件上传至OSS并获取访问URL。阿里云OSS具有海量存储、安全可靠、低成本等优势,可有效替代本地磁盘存储方案,适用于各类文件存储需求。开发过程中需注意保护AccessKey等敏感信息,按照官方文档正确配置SD
2025-11-21 21:42:01
3128
1
原创 mysql数据库外键约束的操作规则(详细)
摘要:外键约束用于维护表间数据关联,通过父表(主表)和子表(从表)实现参照完整性。MySQL提供多种操作规则:RESTRICT(默认拒绝变更)、CASCADE(级联同步)、SETNULL(设为空值)、NOACTION(类似RESTRICT)和SETDEFAULT(设为默认值)。外键仅InnoDB引擎支持,会自动创建索引,但会增加操作开销。使用时需注意避免循环引用,语法通过CREATE/ALTER TABLE定义,可指定ON DELETE/UPDATE规则。外键适用于强/弱关联场景,需根据业务需求选择适当规则
2025-11-20 22:15:29
861
原创 c++中栈、队列,哈希的常用函数
本文摘要:介绍了C++ STL中常用的数据结构及其基本操作。栈(stack)支持push、pop、top等操作;队列(queue)包含front、back等接口;链表(list)提供push_front、insert、erase等方法;映射(map)基于红黑树实现键值存储,支持find、lower_bound等功能;集合(set)实现排重和排序,包含insert、find、bound等操作。这些容器都提供size()、empty()等通用方法,可通过迭代器进行遍历。摘要涵盖了各数据结构的核心功能和典型用法。
2025-11-17 09:09:44
155
原创 java后端项目技术详解(三)
本文摘要: 会话跟踪技术中,Cookie是客户端存储方案,通过HTTP头传递数据但安全性低;Session是服务端存储方案,依赖Cookie传输SessionID但存在集群限制。JWT由Header、Payload、Signature三部分组成,实现安全令牌验证。拦截器路径匹配中,/*匹配一级路径,/**匹配多级路径。过滤器(Filter)基于JavaEE规范拦截所有资源,拦截器(Interceptor)基于Spring框架仅拦截控制器方法。AOP通过切面编程实现日志记录、权限控制等横切关注点,Sprin.
2025-11-17 08:44:21
1153
原创 java后端项目技术详解(二)
Mybatis开发总结:XML映射文件需与接口同包同名,注解适合简单SQL,复杂SQL建议用XML。#可防SQL注入,$不安全应避免。RESTful API使用GET/POST/PUT/DELETE操作资源。@RequestBody处理请求体json数据,@ResponseBody直接返回响应数据。数据库设计包含一对一、一对多、多对多关系。事务控制使用@Transactional注解,确保ACID特性。动态SQL通过<if><where><foreach>等标签实现条件拼
2025-11-16 13:05:24
923
原创 java后端项目技术详解(一)
本文摘要:Maven仓库分为本地、远程和中央仓库,依赖查找按此顺序进行,坐标由组织名、模块名和版本号组成。Maven生命周期分clean、default、site三套,重点关注5个阶段:clean、compile、test、package、install。JUnit常用注解包括@Test、@BeforeEach等。HTTP协议特点包括请求/响应格式、状态码分类及常见状态码。IOC实现控制反转,DI实现依赖注入。Spring声明Bean的注解有@Component等,生效取决于组件扫描范围。数据库约束包括主键
2025-11-16 11:56:03
1476
原创 java基础-stream流详细解释
本文介绍了Java中Stream流的基本用法,主要包括:1)单列集合和双列集合获取Stream流的方法;2)数组和零散数据获取Stream流的方式;3)常用的Stream中间操作方法如filter、limit、skip等;4)Stream流的终结方法包括count统计、toArray转换为数组;5)collect收集方法的多种应用场景,包括转换为List、Set和Map集合。文章通过具体代码示例演示了如何使用Stream流进行高效的数据处理和集合操作。
2025-11-15 15:57:03
195
原创 springboot项目中的一些常见注解(详细解释)
本文摘要: 本文系统介绍了17个常用的Java开发注解及其应用场景。重点包括:单元测试框架JUnit的@Test、Spring框架中的@RestController和@RequestMapping等控制器相关注解、依赖注入相关的@Autowired和@Primary、MyBatis的@Mapper、参数处理的@RequestParam和@PathVariable、Lombok的@Data和@Slf4j简化开发、事务管理的@Transactional、全局异常处理的@RestControllerAdvice等
2025-11-15 15:47:42
1665
原创 WebSocket实现苍穹外卖来单提醒和催单功能
本文介绍了WebSocket协议的特点及其在Spring Boot中的实现应用。WebSocket通过持久化连接实现浏览器与服务器双向通信,相比HTTP协议具有明显优势。文章详细展示了如何在Spring Boot项目中集成WebSocket,包括添加依赖、配置服务端组件和注册配置类。重点实现了来单提醒和催单两个业务场景,通过WebSocket向管理端实时推送订单状态变化信息,并触发语音播报功能。最后指出测试时需注意重新登录刷新页面才能触发语音提示的功能特性。该方案有效提升了餐饮管理系统的实时交互体验。
2025-11-14 16:50:41
511
原创 Spring Task实现苍穹外卖订单超时和派送中的业务功能
摘要:SpringTask是Spring框架提供的任务调度工具,用于定时执行Java代码。使用SpringBoot时只需引入spring-boot-starter依赖,在启动类添加@EnableScheduling注解即可启用定时任务功能。示例演示了通过@Scheduled注解和cron表达式实现订单超时处理和派送订单状态更新的定时任务,分别设置了每分钟和每天凌晨1点执行的调度规则。任务类通过OrderMapper操作数据库,自动更新订单状态为"取消"或"已完成"。
2025-11-14 11:58:01
368
原创 idea中用Java操作HttpClient及测试请求
本文介绍了如何使用Apache HttpClient工具包在Java程序中发送HTTP请求。首先需要导入Maven依赖,然后创建HttpClientUtil工具类,封装了GET请求、表单POST请求和JSON格式POST请求的方法。工具类提供了设置超时时间、构建请求参数等功能。最后通过单元测试演示了GET和POST请求的使用方式,包括创建连接、发送请求、处理响应等完整流程。该工具类可以帮助开发者快速实现HTTP接口调用功能。
2025-11-13 09:11:10
459
原创 AOP(面向切面编程)知识点总结及应用(详细)
摘要:AOP(面向切面编程)是一种通过切面增强程序行为的编程范式,将横切关注点(如日志、事务)与核心业务逻辑分离。文章介绍了AOP的核心概念(切面、通知、切入点等)及通知类型,重点讲解了使用@Around注解统计方法执行耗时的案例。案例中通过定义切面类,在方法执行前后记录时间差,实现了无侵入式的性能监控。该示例演示了AOP在不修改源码情况下增强功能的优势,体现了其提高代码可维护性的特点。
2025-11-13 09:10:27
441
原创 redis常见命令以及在java中操作redis命令(超详细)
Redis基础操作与Java集成指南 本文介绍了Redis的基本操作和Java集成方法。主要内容包括:Redis的启动与连接、五大数据类型(字符串、哈希、列表、集合、有序集合)的常用命令、通用键操作命令,以及在Java项目中通过Spring Boot集成Redis的完整流程。文章详细说明了如何在项目中配置Redis连接、自定义RedisTemplate解决序列化问题,并提供了各类数据操作的测试代码示例。这套方案适用于需要快速在Java项目中使用Redis进行数据缓存的开发场景。
2025-11-12 14:43:07
1668
1
原创 jwt实现登录认证功能
JWT是一种加密令牌,用于用户认证。它由Header(算法类型)、Payload(用户信息)和Signature(加密签名)三部分组成。本文介绍了JWT的实现方案:1) 导入JJWT依赖包;2) 创建JWT工具类,包含生成和解析Token的方法;3) 配置拦截器实现Token验证逻辑,拦截非登录请求;4) 在登录接口中生成Token并返回。代码实现了完整的JWT认证流程,包含Token生成、验证和失效处理。通过拦截器统一验证请求头中的Token,确保接口访问安全性。
2025-11-12 13:35:31
603
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅