自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

案例一:零食商铺销售分析数据文件

案例一:零食商铺销售分析

2025-03-19

数据库 MySQL 必知必会 工具使用

从今天开始,咱们一起学习SQL相关的知识,仅学习SQL,不会事无巨细的讲一通,,不讲数据库理论、设计、规范化等,当然,这些内容也很重要,这个我们后面学习高性能Mysql的时候再深入分析,我们现在只专注于一个东西,就是学习SQL,仅学习SQL。

2025-03-19

MySQL数据分析案例:零食商铺销售分析

【项目背景】 本次项目旨在深入分析2023年下半年(7月1日至12月31日)某平台上综合性零食的销售数据,以支持平台在2023年针对这一热门品类的广告投放策略。通过对购买人数、不同店铺表现及具体商品销售数据的全面研究,我们期望能够揭示综合性零食的整体销售趋势、价格区间分布以及消费者的地域偏好。 具体来说,我们的分析将聚焦于以下几个关键方面: 1. 整体销售数据分析:首先,我们将统计综合性零食在2023年下半年的总销售额、销售量及购买人次,从而掌握该类商品的整体市场热度与增长态势。 2. 价格区间研究:进一步,我们将分析不同价格区间的综合性零食销售情况,了解哪些价格段的商品更受消费者青睐,为平台定价策略提供参考。 3. 地域偏好分析:此外,我们还将深入研究综合性零食消费者的地域分布情况,揭示不同地域消费者的购买习惯、需求特点,从而指导平台在不同地区投放更为精准的广告内容。 通过以上分析,我们将为平台提供详尽的数据支持和策略建议,助力其在2021年针对综合性零食品类制定更为精准有效的广告投放策略,进一步提升品牌影响力和市场竞争力。

2025-03-19

Effective Java(第三版):用静态工厂方法替代构造器的优势与应用场景

内容概要:本文介绍了静态工厂方法相较于普通构造器的优点及其在Java编程中的广泛应用。通过对具体示例(如图书类、汽车类和日志框架)的探讨,文中阐述了静态工厂方法的五大优势:方法命名明确、无需每次都创建新对象、可返回子类型实例、实现版本间平滑转换和支持延迟载入或动态绑定的服务提供者框架。文中还提到,在一些情况下,使用静态工厂方法有助于优化资源管理、简化API设计,并提升系统的灵活性和扩展能力。最后,文章引用JDBC API为例,解释了静态工厂方法是如何支撑起复杂服务体系的。这些理论来源于著名著作《Effective Java》,并且结合了一些改进后的例子便于理解和实践。 适用人群:面向Java开发者特别是中级及以上水平的程序员,对于想提高代码质量和掌握优秀编码习惯的人很有价值。 使用场景及目标:①适用于想要学习如何写出更具表达力和易读性的构造逻辑时;②对于希望掌握如何利用静态工厂来改善大型项目中类的设计与组织架构的人来说尤为重要。 其他说明:除了理论讲解之外,本文也提供了大量的完整代码片段供读者参考模仿。推荐读者结合原文书籍进行深度研读,从中获取更多有价值的知识和技术细节。

2025-03-19

Java\架构探险:从零开始写javaweb框架:从零开始构建并运行简单Web应用

内容概要:本文详细介绍了如何使用Java从零开始创建并运行一个简单的Web应用程序。它逐步展示了整个过程,涵盖从项目创建到最终部署的具体步骤。具体来说,文中先讲述了用IntelliJ IDEA和Maven构建项目的基础设置,涉及配置Servlet、JSP、以及使用JSTL等相关组件;接下来则重点介绍了一个名为HelloServlet的简易Servlet的设计及其配合JSP页面展示的时间数据传递机制。最后,在解释了Tomcat服务器与项目的整合后,读者还学会了一套完整的基本的Java Web应用程序的构建方法,为今后进一步复杂的应用开发奠定坚实基础。 适用人群:适合那些刚刚接触Web应用开发的学习者或者希望深入理解Java Web应用内部运作机理的开发者。 使用场景及目标:本文适用于刚开始学习Web开发的学生群体、或是有意深入了解基于Java技术栈的企业级应用架构师和技术负责人。通过此文章的学习可以掌握搭建基本Web应用技能,同时熟悉常用的Java EE组件和服务端开发工具链的运用。 其他说明:本篇文章提供了一份全面指南,旨在帮助初学者快速建立起第一个自己的小规模Web应用实例。

2025-03-19

零食销售数据分析-基于2023年下半年电商平台综合性零食市场的深度解析

内容概要:本文通过对2023年下半年某电商平台综合性零食销售数据的详尽分析,探讨了该类别商品的整体销售趋势、价格区间分布、地域偏好的特点,并提供了相应的营销策略建议。首先,报告概述了平台的基本运营指标,展示了整体市场热度。随后,分别就销售额排名前十的店铺、购买量最高的商品以及主要消费地域进行了详细的统计与分析,指出品牌效应与价格并非决定性的单一因素。最后,提出了广告投放在头部店铺加码、优化产品价格带定位和扩展新地理市场的三点建议。 适合人群:电商从业人员、市场营销分析师、企业决策层。 使用场景及目标:①协助企业深入了解综合性零食市场的消费行为特征和市场需求动态;②为企业在广告投放、商品定价和市场开拓等方面提供科学依据。 其他说明:文中涉及的数据虽为虚构,但反映了真实的数据处理流程,可作为类似研究的学习样本。

2025-03-19

数据分析领域SQL核心语法详解:从创建数据库到聚合函数的实战指南

为了提高在数据分析中的SQL技能,应首先掌握基础语法。几乎所有的数据库的SQL语法都是相 似的,甚至现在做大数据分析用到的Hive SQL,其语法也基本和SQL一样,所以学会SQL基本 上就掌握了所有数据库的取数方法。 我们重点掌握以下几点: • select:表示查询结果。学会使用 select 从数据库中检索数据。 • from:表示从哪个表中查找数据。 • where:表示查询条件,灵活运用where子句实现数据筛选,结合算术运算符( + , - , * , / )和逻辑运算符( AND , OR , NOT )进行字段计算和条件精确控制。 • group by:表示对数据按某列(不同维度)分组。结合 SUM , COUNT , AVG 等聚合函数进行 统计汇总。 • having:表示对分组后的结果进一步筛选。 • order by:表示对查询结果进行升序或者降序的排列。 • limit:表示从查询结果中取出限定行。

2025-03-19

空空如也

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

TA关注的人

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