自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python的数据结构详细讲解

类型系统Python 动态类型,所有值均为对象;Java 静态类型,区分基本类型和对象类型。内存与性能Java 的基本类型(如int)直接在栈上分配,效率更高;Python 的所有类型均为堆分配对象。扩展性Python 的容器可混合存储不同类型,Java 容器需指定泛型类型(如不可变性Python 通过内置类型(如tuple)直接支持不可变,Java 需依赖 API 或第三方库。

2025-05-13 17:15:07 57

原创 可变类型,不可变类型的设计和常量池存在原因

通过合理选择可变与不可变类型,并利用常量池优化,可以写出更安全、高效的 Java 代码!的存在,都是为了解决特定的编程问题和优化性能。

2025-05-13 10:04:00 156

原创 基本数据类型和包装类(以int类型为例子讲解)

掌握这些机制,可以避免常见的坑(如包装类比较错误),并写出更高效的代码!在赋值行为和内存管理上有本质区别。

2025-05-13 10:01:29 117

原创 java里面的可变类和不可变类

/ Date 是可变对象!// 防御性拷贝:防止外部修改影响内部状态// 返回拷贝,避免内部数据被修改特性不可变类型(如String可变类型(如内容修改创建新对象,原对象不变直接修改原对象线程安全天然安全需手动同步(如内存优化常量池、缓存机制无特殊优化适用场景多线程、哈希键、配置类单线程高频修改、动态集合操作掌握可变与不可变类型的区别,能帮助你写出更高效、健壮的代码。优先使用不可变对象:除非有明确的修改需求。避免共享可变对象:防止多线程竞争或意外修改。

2025-05-13 09:57:51 366

原创 PyCharm软件下载和配置Python解释器

通过以上步骤,您已成功配置PyCharm和Python解释器,可以开始编写和运行Python代码!

2025-05-11 18:18:07 747

原创 MongDB数据库在Spring Boot项目里面的简单使用

通过以上步骤,即可在 Spring Boot 项目中集成 MongoDB 并实现基本的 CRUD 操作!如果需要更复杂的查询,可以参考 Spring Data MongoDB 的。以下是在 Spring Boot 项目中集成 MongoDB 的详细步骤,包含。注解或聚合管道(Aggregation Pipeline)。配置、实体定义、Repository 和示例代码。使用 Spring Initializr(定义数据访问层接口,继承。

2025-05-10 09:16:47 1194

原创 MongDB和MySQL的区别

通过对比,可以更清晰地根据业务需求选择合适的数据库。如果需要进一步探讨具体场景,可以继续交流!,它们在设计理念、数据模型、查询语言、扩展性等方面有显著差异。

2025-05-10 09:10:46 963

原创 MongDB 数据库简单介绍

通过以上内容,你可以快速上手 MongoDB 的基本操作!如果需要进一步学习,建议参考官方文档:https://docs.mongodb.com/,以高性能、高扩展性和灵活的数据模型著称。(类似 JSON 格式的 BSON),适合处理。MongoDB 是一个开源的。

2025-05-10 09:07:20 638

原创 FreeMarke 生成静态模板(存储到MinIo里面)

MinIO是一个高性能的开源对象存储服务,兼容 Amazon S3 API,适用于存储非结构化数据(如图片、视频、日志、静态文件等)。它具备高可用性、分布式部署能力,适合作为云原生应用的存储基础设施。使用 MinIO 存储静态文件(CSS、JS、图片等)。通过工具类便捷管理文件上传。在 Freemarker 模板中直接引用 MinIO 文件地址。前端通过公开 URL 或代理访问静态资源。

2025-05-09 12:41:46 286

原创 FreeMarker 生成静态文件(写在磁盘当中)

/ 示例实体类@Data // Lombok 注解模板设计:编写.ftl模板文件,定义动态占位符和逻辑。数据准备:构建与模板匹配的数据模型(Map 或 Java 对象)。渲染写入:调用 FreeMarker 渲染模板,将结果写入物理文件。访问管理:通过 HTTP 直接访问静态文件或集成到 CDN。此方案适用于需要预生成静态内容以提高性能的场景(如 SEO 优化、高并发页面)。

2025-05-09 10:28:13 658

原创 FreeMarker静态模版基础语法

通过上述步骤,你可以在 Spring Boot 中快速集成 FreeMarker,利用其强大的模板功能实现动态页面渲染。重点掌握集合遍历、条件判断和空值处理,能有效提升开发效率。

2025-05-08 22:36:18 522

原创 Apifox插件推荐(可以进行API接口调试,文档管理,Mock服务)

在 IntelliJ IDEA 中使用可以方便地进行 API 接口调试、文档管理和 Mock 服务。

2025-05-08 18:12:19 719

原创 Redis 集群结构

以下是更详细的逐步指南,涵盖从零开始搭建Redis集群到Spring Boot集成的完整流程,

2025-05-04 23:07:58 311

原创 Redis哨兵(主从架构 + Sentinel)

是用于的配置,而主从架构 + Sentinel 需要使用。

2025-05-04 21:55:51 1007

原创 Redis主从架构

SAVE可以查看这个链接去配置。

2025-05-04 17:59:01 538

原创 Redis主从架构配置 读写分离

BeanReadFrom.REPLICA_PREFERRED // 可替换为自定义策略。

2025-05-04 17:56:25 534

原创 Redis的持久化

根据业务需求合理选择持久化策略,并配合监控、备份和测试恢复流程,才能最大限度保障数据安全。Redis的持久化机制是确保数据安全的关键功能,主要包括。:同时启用RDB和AOF,兼顾快速恢复与数据安全。以下是详细的实现方法及配置推荐,:记录每个写操作命令,以追加日志(:定期将内存数据生成二进制快照(

2025-05-04 16:17:05 624

原创 解决超卖问题

在电商、秒杀等高并发场景中,是一个经典的技术挑战。以下是基于 Spring Boot 项目的,结合多种技术手段实现高并发下的库存安全。

2025-05-02 20:25:41 800

原创 解决缓存击穿问题

也就是说在查询的时候没有在Redis里面找到那么需要在数据库里面进行一个查询然后添加到Redis里面,但是如果一个相同的一个信息进行查询那么会增加压力,那么需要给到一个互斥锁然后进行一个上锁减缓一下压力。核心思想:缓存不设物理过期时间,但在数据中存储逻辑过期时间,由后台任务或访问时异步更新。核心思想:系统启动或数据变更时,主动加载热点数据到缓存。

2025-05-02 18:00:00 950

原创 Redis 解决缓存穿透

只能判断这个实体类是否存在,不能判断里面的属性值是否为null。通过上述方案,可以在 Spring Boot 项目中有效解决缓存穿透问题,保障系统的高可用性和性能。容易犯错的地方是这个判断,在得到的shop实体类的时候不能确保里面的全部属性值都不为null,在 Spring Boot 项目中结合 Redis 解决缓存穿透问题(我。在应用启动时,加载所有合法数据标识(如商品 ID)到布隆过滤器。在查询数据前,先通过布隆过滤器校验请求的合法性。若系统为分布式架构,可使用 Redis 的。

2025-05-01 23:37:05 1053 1

原创 RedisTemplate的序列化配置方式详解

配置/方法特点适用场景默认JDK序列化二进制存储,兼容Java对象纯Java应用,无需人工查看数据Key/Value均String纯文本存储,兼容性强简单键值对,跨语言场景Key为String,Value为JSON可读性好,支持复杂对象存储DTO对象,需人工查看或跨语言读取Hash结构定制序列化灵活配置Hash的Field和Value序列化嵌套数据结构,如用户属性高性能二进制序列化手动控制序列化,性能最优高性能场景,如缓存大量数据数据结构操作方法。

2025-05-01 11:16:42 841

原创 使用 Spring Data Redis 实现 Redis 数据存储详解

Spring Data Redis 是 Spring 生态中操作 Redis 的核心模块,它封装了 Redis 客户端的底层细节(如 Jedis 或 Lettuce),提供了统一的 API 来操作 Redis 的数据结构。确保所有操作的 Key/Value 序列化方式一致,避免出现乱码或类型错误。或手动关闭连接,避免未释放的连接耗尽资源。在 Redis 配置中设置。

2025-05-01 00:03:26 1549

原创 Redis数据结构介绍

场景推荐数据结构简单键值存储String对象存储(多字段)Hash队列/栈List无序去重集合Set有序排行榜Sorted Set二值状态统计Bitmaps近似去重统计地理位置GEO消息队列(高级需求)Stream通过合理选择数据结构,可以显著提升 Redis 的性能和内存利用率。如果需要更深入某个结构的实现原理(如跳跃表、压缩列表),或实际应用案例,可以进一步探讨!

2025-04-30 08:24:17 1034

原创 Redis的简单介绍

Redis(motectionaryerver)是一个开源的、基于内存的,常被用作数据库、缓存和消息中间件。

2025-04-30 07:59:17 802

原创 自定义 Starter(spring boot starter)

通过自定义 Starter,你可以将一组功能封装为可复用的组件,其他项目只需添加依赖即可自动配置 Bean。),可以让其他项目通过依赖引入你的 Starter 来自动配置 Bean 和相关组件。发布到 Nexus 或 Maven Central。在 Spring Boot 中自定义一个。就能轻松集成你的功能!

2025-04-25 14:17:03 305

原创 Spring boot 自动配置

Spring Boot 的自动配置通过条件化加载机制和默认配置,极大简化了开发流程。理解其原理和条件注解的用法,可以帮助开发者更高效地使用和定制 Spring Boot。

2025-04-25 14:11:58 437

原创 IOC容器类比理解

它的核心目标就是帮你管理所有 Bean 的“家务事”,让你能更专注于业务逻辑的开发(即“自己的事业”)。下面通过一个具体的场景和对比,详细解释这个比喻的合理性及其优势。通过这个“管家”,你可以更高效、更优雅地构建应用程序,而无需被技术细节绊住脚步。这正是 Spring Boot 设计的核心理念——

2025-04-25 00:44:12 562

原创 Bean存在的意义和IOC容器管理

通过 IOC 容器管理 Bean,你不仅能更高效地开发,还能让代码更健壮、更易于维护和扩展。的区别,逐步解释 Bean 存在的意义,以及 Spring IOC 容器的核心优势。

2025-04-25 00:38:32 748

原创 Spring boot 中的IOC容器对Bean的管理

Spring Boot 中 IOC 容器对 Bean 的管理,涵盖从容器启动到 Bean 的生命周期管理的全流程。掌握这些步骤后,可以高效利用 Spring Boot 的 IOC 容器管理 Bean,构建松耦合、可维护的应用。容器负责将依赖的 Bean 注入到需要它们的对象中。通过注解或接口控制 Bean 的初始化和销毁逻辑。Spring Boot 的 IOC 容器基于。通过条件注解控制 Bean 的注册。注解指定 Bean 的作用域。,在应用启动时自动初始化。注解标记主类,启动容器。

2025-04-25 00:16:02 1728 1

原创 ThreadLocal线程本地量

后续业务代码(如 Controller、Service、DAO)可直接从。为了避免内存泄漏(尤其是使用线程池时),必须在请求处理完成后清理。通过这种方式,你可以安全地将用户登录信息存储在。在用户登录成功后,将用户信息存入。(但需谨慎,线程池中可能不适用)。中,并在整个请求链路中共享数据。如果业务代码中使用异步线程(如。),子线程无法直接继承父线程的。以下是实现将登录信息存储在。中获取用户信息,无需传参。:手动传递用户信息或使用。

2025-04-24 18:07:37 338

原创 Spring AOP 的讲解

技术,将横切关注点(如日志、事务、权限校验)与核心业务逻辑分离,提升代码的模块化和可维护性。在 Maven 项目中,需添加以下依赖(Spring Boot 项目推荐使用。掌握 Spring AOP 是构建高可维护性企业级应用的关键!是 Spring 框架的核心模块之一,旨在通过。Spring AOP 通过。

2025-04-23 23:49:28 771

原创 注解的讲解

/ 注解参数// 属性,可设置默认值五、注解的处理注解需要通过反射或编译时处理工具(APT)来解析。

2025-04-23 17:36:06 506

原创 过滤器和拦截器

在 Spring Boot 项目中,过滤器和拦截器是两种常用的请求处理机制,它们都可以实现对请求的预处理和后处理,但在使用场景和实现原理上有明显区别。以下是详细说明(

2025-04-22 22:57:26 407

原创 JWT令牌登录校验

以下是基于JWT的登录校验模块化实现方案,分为四大核心模块,代码结构清晰且职责分明。

2025-04-22 16:15:49 565

原创 全局异常处理器

Data。

2025-04-22 15:44:33 238

原创 分页查询详细讲解

以下是 原生 SQL 分页、PageHelper 的 对象和 对象 三种分页查询方式的详细实现讲解,包含代码示例和对比分析。3. 优缺点优点:无第三方依赖,灵活控制 SQL。缺点:需手动处理分页参数和总条数查询,代码冗余。二、PageHelper 的 对象1. 实现步骤启动分页:调用 。查询数据:直接执行查询,返回 (本质是 的子类)。获取分页数据:通过 对象直接读取总记录数、当前页数据等。2. 代码示例3. 关键点强制转换: 是 的子类,可以直接转换。分页

2025-04-19 14:11:04 795

原创 Mybatis Plus详细使用讲解

Data@TableName("user") // 表名映射(默认类名驼峰转下划线)@TableId(type = IdType.AUTO) // 主键自增。

2025-04-13 11:21:41 1109

原创 RabbitMQ简单使用

以下是关于如何在 Spring Boot 项目中使用 RabbitMQ 的详细指南,涵盖核心概念、配置、代码实现及使用场景。RabbitMQ 是一个开源的消息代理(Message Broker),基于 AMQP 协议实现异步通信。通过以上步骤,你可以在 Spring Boot 项目中轻松集成 RabbitMQ,实现高效可靠的异步通信。

2025-04-12 23:43:08 897

原创 同步通信和异步通信的区别和使用场景

同步通信和异步通信是两种不同的数据传输或交互模式,它们在实时性、资源占用、实现复杂度等方面有显著差异,适用于不同的应用场景。以下是两者的详细对比及典型使用场景,

2025-04-12 17:47:13 287

原创 Seata实现分布式事务

通过代理数据源和自动生成回滚日志,显著降低了分布式事务的侵入性,适合中小型系统快速集成。实际应用中需结合业务场景选择事务模式,并通过监控和日志优化系统健壮性。远程服务(如库存服务)无需显式标记分支事务,Seata 自动通过数据源代理管理本地事务。Seata 通过代理数据源实现 SQL 解析和自动补偿。实现分布式事务管理的详细步骤及代码示例,结合其。若业务需要更细粒度控制(如资金转账),可切换至。在 Spring Boot 项目的。,数据源代理默认开启,无需额外配置。在发起分布式事务的方法上添加。

2025-04-12 14:49:43 630

空空如也

空空如也

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

TA关注的人

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