- 博客(24)
- 收藏
- 关注
原创 双令牌(token)实现登录升级
双令牌认证机制实现安全无感登录 摘要:采用access_token(短效)和refresh_token(长效)的双令牌方案,access_token用于常规请求(30分钟有效期),refresh_token用于刷新令牌(7天有效期)。当用户退出时,后端标记refresh_token失效并清空前端缓存,强制重新登录。access_token过期时,系统自动使用refresh_token获取新令牌,实现无感刷新。数据库存储refresh_token记录并建立索引,接口包括登录、退出和刷新三个核心功能,通过JWT
2025-07-05 23:06:41
345
原创 RBAC-基于角色的访问控制模型
摘要:RBAC是一种通过角色分配权限的访问控制模型,包含用户、角色和权限三个核心要素,简化了权限管理。其实现步骤包括:1)设计用户-角色-权限关联的数据模型;2)角色分配与权限配置;3)操作时的权限校验。典型RBAC系统包含用户表、角色表、权限表及关联表,通过角色作为中介实现权限控制。系统采用多级权限校验(页面访问、元素操作),结合AOP技术实现接口权限控制,并通过动态加载优化权限管理。这种模型具有细粒度控制、灵活扩展和安全性的特点,适用于需要分级权限管理的系统。
2025-07-05 23:04:35
1133
原创 基于MQ+Redis实现动态消息提醒
RocketMQ 客户端(如 Java SDK)在发送消息或消费消息时,如果发现指定的 Topic 不存在,会自动向 NameServer 注册该 Topic。在这种模型中,生产者(Producer)负责生成消息,并将这些消息发送到一个或多个主题(Topic),而消费者(Consumer)则从这些主题中读取并处理消息。这种设计思想的核心是将动态类型(如视频、直播、专栏动态)的具体内容存储在独立的表中,而。红框标注的命令含义:粉丝 ID 为 1、3 收到的订阅消息,即关注用户(UP 主)的动态消息。
2025-07-05 23:02:35
1010
原创 利用ngrok实现内网穿透,将本地服务暴露到公网上,可实现小程序与后台API通信
摘要:ngrok是一款流行的内网穿透工具,通过建立本地与服务器之间的安全隧道,将内网服务映射到公网地址(如yoursubdomain.ngrok.io),实现外网访问。使用步骤包括:下载安装、注册获取AuthToken、启动服务(如ngrok http 8080)。典型应用场景包括小程序开发测试等,但需注意安全风险和免费版流量限制。完成后应及时关闭服务以防止未授权访问。
2025-06-30 20:36:53
1079
原创 基于JWT的用户token验证
文章摘要:本文对比分析了两种用户身份验证机制。基于Session的验证通过服务器端存储会话信息,客户端携带SessionID进行验证;JWT则采用Token机制,由服务器生成签名Token供客户端存储和携带。详细介绍了二者的工作流程、实现步骤及代码示例(包括Token生成、验证和接口测试),并探讨了JWT的失效管理和无感刷新等优化问题。两种方案各具特点,适用于不同应用场景。
2025-06-30 20:35:00
1064
原创 基于RSA加密+MD5哈希实现用户注册与登录,如何使用AI画UML时序图
本文介绍了基于RSA和MD5加密技术的用户注册/登录系统实现方案。系统通过RSA非对称加密保障密码传输安全(客户端公钥加密,服务端私钥解密),使用MD5哈希存储密码(加盐处理)。完整流程包含:1)用户注册时加密存储密码;2)登录时验证密码并生成访问令牌;3)提供RSA公钥接口。数据库设计包含用户主表和信息扩展表,采用MyBatis实现数据持久化。该方案有效解决了密码传输和存储的安全问题,防止中间人攻击和数据泄露风险。
2025-06-30 20:32:38
1264
原创 映射、数据类型应用实战、多表关联方案对比
摘要:Elasticsearch映射(Mapping)定义字段类型和行为,是优化搜索性能的关键。文章首先对比了动态映射的便捷性与风险,强调生产环境应预先设计映射。然后详细解析了基础数据类型(文本、数值、日期等)和高级数据类型(nested、flattened、join等)的应用场景,并通过电商商品管理系统和旅游推荐系统案例说明实际应用。特别指出多字段类型支持同一字段不同用途,并对比了多表关联的不同实现方案,建议优先使用宽表文档模型而非关联查询以提升性能。最后强调映射设计需平衡灵活性、精确性和查询效率。
2025-06-29 22:29:18
810
原创 实例讲解架构、基础知识、核心概念、节点角色、分片分布、重新平衡
Elasticsearch核心架构与节点角色解析 Elasticsearch采用分布式架构,核心组件包括文档(JSON格式数据单元)、索引(类似数据库表)、分片(索引分割单元)和副本(分片冗余备份)。节点类型细分为多种角色:主节点负责集群管理,数据节点(含热/温/冷等子类型)存储处理数据,协调节点处理客户端请求,摄取节点预处理数据。系统采用倒排索引实现高效搜索,通过分片机制实现水平扩展。生产环境建议配置至少3个主节点确保高可用,并根据数据访问频率配置不同层级的数据节点。文档索引时自动推断数据类型,支持灵活的
2025-06-29 22:28:23
819
原创 Windows下安装Kibana
摘要:本文介绍了Kibana的安装步骤。首先需下载对应操作系统的Kibana二进制包并解压。在Windows系统中,通过命令提示符进入bin目录执行kibana.bat启动服务。Kibana默认运行在5601端口,启动前需确保Elasticsearch持续运行。安装完成后,通过浏览器访问localhost:5601即可进入Kibana可视化界面。该工具需要与Elasticsearch配合使用,为数据提供可视化分析功能。
2025-06-29 22:25:01
320
原创 Windows下安装Elasticsearch
本文介绍了Elasticsearch 8.x版本的本地安装方法。重点说明了如何通过修改elasticsearch.yml文件禁用安全功能(仅限调试),并详细描述了下载二进制包、解压安装的步骤。文章提供了最新版本和历史版本的下载链接,指出Elasticsearch自带Java JDK的优点。安装完成后,可通过浏览器或cURL访问http://localhost:9200验证服务是否正常运行,成功后会返回包含集群信息的JSON响应。最后强调了cluster_name属性在集群节点加入时的重要性。
2025-06-29 22:24:28
360
原创 什么是ElasticSearch、Kibana?
ElasticSearch和Kibana构成了强大的数据解决方案。ElasticSearch作为分布式搜索引擎,支持多种数据类型的高效存储、索引和近实时分析,适合读多写少的场景,可通过RESTful API接入。Kibana是配套的可视化工具,提供图表、仪表板等功能,帮助用户直观分析和监控ElasticSearch中的数据。两者结合形成了完整的数据处理链路:ElasticSearch负责数据存储检索,Kibana负责数据展示。ElasticStack还包含Logstash和Beats等数据采集工具,共同构成
2025-06-29 22:23:45
610
原创 全局异常处理,自定义业务异常
全局异常处理器在SpringBoot应用中至关重要,它能统一处理异常、标准化响应格式并提升安全性。通过@ControllerAdvice和@ExceptionHandler等注解实现全局异常捕获,可以避免在每个方法中重复处理异常。自定义业务异常(如ConditionException)能精准描述问题,携带错误代码便于处理。默认情况下系统会返回WhitelabelErrorPage,而全局异常处理器则能返回统一JSON格式的错误信息,如{"code":"500",&qu
2025-06-29 22:20:49
761
原创 JSON数据返回类,自定义JSON转换器
JSON是一种轻量级数据交换格式,广泛应用于Web开发中。文章介绍了JSON的基本结构(对象、数组、数据类型)、应用场景(客户端与服务器通信)及其优点(轻量、易解析、跨语言)。同时讲解了如何通过JSON数据返回类统一管理响应数据格式,以及SpringBoot项目中配置FastJSON转换器的方法,包括日期格式化、null值处理和循环引用检测等。最后探讨了循环引用检测的利弊,并建议谨慎关闭该功能以避免潜在问题。文章为开发者提供了JSON在Web开发中的完整应用指南。
2025-06-29 22:19:28
836
原创 加解密算法:AES、RSA、MD5实战
摘要:本文介绍了三种常见的加密算法及其应用场景。AES是对称加密算法,适合快速加密大量数据;RSA是非对称加密算法,安全性高但速度较慢,适用于密钥交换和数字签名;MD5是哈希算法,用于验证数据完整性但安全性不足。文章还提供了Java代码示例展示三种算法的实现方式。选择加密算法时需根据具体需求:AES适合数据加密,RSA适合安全验证,MD5适合完整性校验但不推荐用于重要场景。
2025-06-29 22:15:59
756
原创 搞懂什么是RESTful API?
RESTful接口设计指南摘要 本文介绍了RESTful接口设计的基础概念和最佳实践。接口是系统间通信的"桥梁",REST则是一套设计规则,强调无状态、统一接口和资源导向的特性。核心内容包括: HTTP方法应用:GET获取资源、POST创建、PUT更新、DELETE删除 设计示例:以图书馆管理系统为例,展示书籍资源的CRUD操作接口设计 URL命名规范:使用小写复数名词、连字符分隔、避免尾部斜杠 复杂查询设计:通过查询参数实现分页、排序和条件筛选 幂等性概念:GET/PUT/DELETE
2025-06-29 16:12:06
997
原创 基于 Spring Boot 的多模块、多环境项目(MySQL+MyBatis)
本文详细介绍了在IntelliJ IDEA中创建基于SpringBoot的多模块Maven项目的完整流程。主要内容包括:1)创建父项目和controller、service、dao三个子模块;2)配置多环境开发(dev/prod);3)设置JDK1.8和本地Maven环境(包括阿里云镜像配置);4)集成SpringBoot框架并建立模块间依赖;5)引入MySQL和MyBatis,配置数据库连接和Mapper映射;6)开发包含Controller、Service、Mapper各层的完整示例;7)最终通过启动类
2025-06-29 16:08:29
1349
原创 核心技术栈
Java开发环境搭建指南:支持Linux/Mac/Windows系统,推荐使用InteliJ IDEA 2018+版本。需安装JDK1.8和Maven3(Oracle官网/IDEA内置)。Maven提供依赖管理、标准化构建和项目管理功能。配套资源包括B站教程(环境搭建、IDEA使用、Maven项目创建)、Git版本控制(SourceTree工具)、Redis高并发处理及RabbitMQ消息队列入门。附相关视频教程链接,涵盖从基础环境配置到高级组件应用的完整学习路径。
2025-06-29 16:07:41
231
原创 技术选型&项目架构
摘要:本文介绍了基于SpringBoot2.x+MySQL的技术选型方案。SpringBoot2.x作为主流Java框架,具有自动配置、独立运行和微服务支持等优势;MySQL作为关系型数据库,具有高性能和易用性特点。文章详细说明了典型的三层架构模式:Controller层处理请求、Service层实现业务逻辑、Dao层负责数据访问,并给出了MyBatis的Mapper示例。最后展示了标准的Maven项目目录结构,包含controller、service、mapper等核心模块。这套技术栈适合构建企业级Jav
2025-06-29 16:06:46
1059
原创 仿B站搜索:深分页问题、新旧索引切换
本文介绍了基于MySQL和Elasticsearch的视频数据存储与搜索方案。首先设计了MySQL数据库表结构,包括视频信息表、硬币表、收藏表和评论表等核心表。然后详细说明了如何将这些数据聚合到Elasticsearch中,包括索引结构设计、字段映射和数据模型定义。文章还提出了全量同步和增量同步两种数据同步策略,并探讨了索引切换问题。最后给出了搜索实现方案,包括多种分页方式比较和大数据量下的索引优化建议。该方案为视频平台提供了完整的从数据存储到搜索的技术实现路径。
2025-06-24 20:27:30
1160
原创 SpringBoot集成ElasticSearch实例
摘要:Elasticsearch 7.17版本推出了新型Java客户端elasticsearch-java,采用强类型请求/响应设计,解决了旧版High-Level REST Client的维护问题。配置方法包括添加Maven依赖(如elasticsearch-java 8.17.4和Jackson 2.17.0)并通过配置类初始化客户端。示例演示了创建书籍实体模型和实现基于作者名的文档搜索功能,使用现代API构建查询请求。该客户端支持认证、连接池优化等功能,为Java开发者提供了更高效的ES。
2025-06-24 20:26:02
314
原创 入门体验Elasticsearch搜索和聚合:在线书店实战案例
Elasticsearch7.X速学版:在线书店案例体验搜索、聚合分析功能实战演练,在实战中学习Elasticsearch本节课将以一个虚构的在线书店为例体验一下Elasticsearch的魅力,展示Elasticsearch的特性。本节主要内容:字段名描述示例数据书名作者出版日期(格式:月-日-年)亚马逊上的平均评分畅销书标志包含3种货币的单本价格对象 表示这本书的价格分别为:美元9.95元,英镑7.95元,欧元8.95元。 Elasticsearch 是一个以文档为中心的数
2025-06-24 20:24:33
880
原创 架构师必须掌握的画图工具draw.io、文本绘图(PlantUML)(架构图、UML图、流程图、时序图)
今天,我将为大家解锁两种强大易用的画图工具,助你在架构设计之路上乘风破浪、披荆斩棘。首先是draw.io,这款在线绘图工具以其丰富的预设模板和强大的定制能力深受广大技术人群喜爱,无论是绘制复杂的系统架构图还是精巧的UML类图,都能游刃有余。既支持在线画图,也支持离线画图!其次,我们还将探讨语雀中的文本绘图工具,特别是支持PlantUML语法的特性,让你可以通过简单的代码就能描绘出专业美观的架构和设计图,充分体现了“码即是图,图亦是码”的理念。
2025-03-19 22:00:09
2503
原创 轻松学习SQL数据分析:五个真实项目案例,五个数据分析报告,可写进简历哦
通过以上分析,我们将为平台提供详尽的数据支持和策略建议,助力其在2021年针对综合性零食品类制定更为精准有效的广告投放策略,进一步提升品牌影响力和市场竞争力。综合这两个价格区间,我们可以看到定价低于100元的商品种类数已经占据了约80%的比例,这显示了商品定价策略中较为亲民的价格区间对商品种类多样性的重要贡献。用上面得到的价格区间的数量除以总的价格计数(count(价格)),就是对应区间的占比。),并计算每个店铺的总销售额。在之前的SQL查询基础上,我们可以增加查询字段“价格”,以展示每个商品的价格信息。
2025-03-19 21:44:35
4447
原创 Effective Java第1条编程经验法则:用静态工厂方法代替构造器,通过代码示例对比分析 静态工厂较构造器的五大优势
通过上述对比,可以看到静态工厂方法提供了更多的灵活性,允许我们在创建对象时实施逻辑判断,比如复用对象、优化资源分配等,这是直接使用构造器所不具备的优势。尤其是在需要控制对象实例化策略,如单例模式、多例模式或池化对象的场景下,静态工厂方法展现了其独特的价值。书中的例子:不可变类的一个经典例子是Java中的String类。在Java中,字符串被设计为不可变,意味着一旦一个字符串对象被创建,它的内容就不能被改变。当你在Java程序中直接编写如。
2025-03-19 20:56:41
1579
1
数据库 MySQL 必知必会 工具使用
2025-03-19
MySQL数据分析案例:零食商铺销售分析
2025-03-19
Effective Java(第三版):用静态工厂方法替代构造器的优势与应用场景
2025-03-19
Java\架构探险:从零开始写javaweb框架:从零开始构建并运行简单Web应用
2025-03-19
零食销售数据分析-基于2023年下半年电商平台综合性零食市场的深度解析
2025-03-19
数据分析领域SQL核心语法详解:从创建数据库到聚合函数的实战指南
2025-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人