- 标签
- 知识分享
电商SPU与SKU详解
电商 SPU 与 SKU 详解 一、概念定义 1. SPU(Standard Product Unit,标准产品单位) SPU 是商品的"属性集合",代表"是什么商品",是商品的最小聚合单位。 它是一组可复用、易检索的标准化信息的集合,描述的是商品的核心属性(如品牌、型号、名称、类目),但不包含具体
32过滤器和拦截器的区别
过滤器和拦截器都能在请求前后执行逻辑,但本质不同:过滤器基于Servlet规范,工作在容器层,通过责任链模式执行,不依赖Spring;拦截器基于Spring MVC框架,通过动态代理实现,依赖IoC容器,可访问Controller方法及注解。请求先经过过滤器链,再到DispatcherServlet,最后进入拦截器链。过滤器适合通用处理(如编码、静态资源),拦截器适合业务相关操作(如权限校验、日志记录)。
31AOP使用场景学习笔记
AOP是一种编程范式,通过将日志、事务等横切关注点模块化为“切面”,实现与业务逻辑的分离。核心概念包括切面、连接点、切入点、通知和织入。Spring AOP默认使用JDK动态代理或CGLIB代理实现运行时织入,支持前置、后置、异常、最终和环绕通知。常见应用场景有日志记录和事务管理,有效减少代码重复与耦合。
springboot+websocket实时聊天(二)
本文介绍了Spring Boot + WebSocket实时聊天系统的前端实现。核心包括:WebSocket连接管理工具类(支持单例模式、自动重连、心跳检测)和聊天窗口组件。通过WebSocket实现实时消息收发,采用指数退避重连策略,30秒心跳保活,支持文本和图片消息展示。
- 2026-07-27 19:07
- 0
- 0
- 0
- 24.0℃
springboot+websocket实时聊天(一)
本文介绍基于Spring Boot WebSocket实现实时聊天功能的通用模板,涵盖功能概述、技术选型、数据库设计及后端实现。支持在线用户收发文字/图片消息,消息异步持久化至MySQL,离线用户通过REST拉取历史,按业务维度(如订单、群组)管理会话。推荐使用MQ异步写入、对象存储图片,并提供无MQ变体方案。
30-3阶内容-1.8-雪花算法
雪花算法是Twitter开源的分布式ID生成算法,生成64位全局唯一、有序、高性能的ID。其结构包括1位符号位、41位毫秒时间戳、5位机房ID、5位机器ID和12位序列号,支持每毫秒每机生成4096个ID。相比数据库自增和UUID,雪花算法存储小、有序且性能高。核心问题为时钟回拨可能导致ID重复,解决方法包括等待、更换workId或调用其他服务。
- 2026-07-12 22:58
- 10
- 0
- 0
- 25.0℃
27-3阶内容-2.7.1-xxljob
本文介绍了定时任务的概念、使用场景,以及Spring Boot中通过@Scheduled注解实现定时任务的三种方式(fixedRate、initialDelay、cron)。重点引入XXL-JOB分布式任务调度平台,它将调度与执行解耦,解决了分布式环境下@Scheduled可能导致的重复执行问题,并概述了其架构(调度中心与执行器)及集成配置方法。
- 2026-07-12 22:58
- 9
- 0
- 0
- 24.9℃
26-3阶内容-2.3.1-Minio
本文介绍了Minio,一个基于Apache License 2.0、兼容AWS S3接口的轻量级对象存储服务,适合存储图片、视频等非结构化数据。核心概念包括Bucket(存储桶)、Object(对象)和Endpoint。安装方式提供了Docker和Windows两种方法,并给出了详细的命令和环境配置步骤。文章旨在帮助读者理解Minio并掌握其安装与基本使用。
- 2026-07-12 22:58
- 8
- 0
- 0
- 24.8℃
25-3阶内容-2.2.1.4-MQ消息不丢失与幂等性
本文介绍MQ消息丢失的三种情况:生产端(网络或业务失败)、Broker端(异步刷盘或主从复制丢数据)、消费端(自动ACK后业务失败),并给出对应解决方案:生产端同步回滚或异步补偿,Broker端同步刷盘或主从同步,消费端手动ACK并抛出异常。同时指出手动ACK可能引发重复投递,需通过幂等性设计保证业务仅处理一次。
- 2026-07-12 22:58
- 14
- 0
- 0
- 25.4℃
24-3阶内容-9.9.9-邮件发送
本文介绍了SpringBoot集成邮件发送的实现步骤:添加spring-boot-starter-mail依赖,配置QQ邮箱的SMTP参数(host、port、username、password等),并开启邮箱的POP3/SMTP服务获取授权码;通过JavaMailSender实现简单文本邮件的发送,示例代码展示了基本用法。核心观点是正确配置邮箱授权码和SMTP参数即可快速实现邮件发送功能。
- 2026-07-12 22:58
- 7
- 0
- 0
- 24.7℃
23-3阶内容-9.9.9-短信
本文介绍了云短信接入的完整流程:先申请企业资质、添加签名和模板,再创建访问密钥;随后通过SDK进行Demo测试;最后在代码中添加Maven依赖,编写发送短信的Java代码,配置认证信息和请求参数,实现短信发送功能。
- 2026-07-12 22:58
- 6
- 0
- 0
- 24.6℃
21-3阶内容-2.2.1.1-MQ-SpringBoot集成(编写生产者)
本文介绍了SpringBoot集成RocketMQ实现消息生产与消费:生产者支持同步(阻塞等待确认)、异步(回调处理结果)、单向(不关心结果)三种发送方式;消费者分为拉模式和推模式。集成步骤包括添加依赖、配置命名服务器和生产者组,并通过RocketMQTemplate编写生产者Service及消费者监听器,支持自动ACK和手动ACK。
- 2026-07-12 22:57
- 10
- 0
- 0
- 25.0℃
19-3阶内容-2.1.2-nginx
本文回顾了Docker基础,重点讲解Nginx:高性能HTTP和反向代理服务器,具有内存少、并发能力强(支持5万并发)的特点。Nginx通过反向代理和负载均衡解决单体系统高并发问题,是现代应用架构中前后端转发、负载均衡、跨域、缓存等功能的必备工具。文章还介绍了常用命令和配置要点。
- 2026-07-12 22:57
- 6
- 0
- 0
- 24.6℃
18-3阶内容-2.1.1-docker
Docker是一种轻量级容器化部署工具,相比VM省去了完整操作系统,共享系统内核,实现隔离、快速部署。它由主机、客户端和镜像市场组成,可将应用打包成镜像一键部署,解决中间件安装重复繁琐问题。文章还详细介绍了Docker的安装步骤和常用命令。
- 2026-06-29 20:35
- 10
- 0
- 0
- 25.0℃
17-3阶内容-1.7.5-布隆过滤器
本文介绍了Redis的核心应用场景、持久化方式、高可用架构及哨兵原理,重点分析了缓存击穿、雪崩与穿透的成因及解决方案:通过同步锁、随机过期时间、多级缓存、熔断降级等应对;针对缓存穿透,提出布隆过滤器(快速但可能误判)与空值缓存策略,并给出了Redisson集成示例。
- 2026-06-27 16:57
- 17
- 0
- 0
- 25.7℃
11-3阶内容-1.3-2-mybatisplus查询构造器
# 本节要点 - map.xml查询编写 - 熟练运用两种查询器 - 多数据源配置 - 认识Druid连接池 # 一、Mybatis plus的查询 写mapper.xml查询(范例),通过名字去查询 ## 1、编写 map.xml \`\`\` id,username,password,real_name,dept_...
- 2026-06-27 16:57
- 5
- 0
- 0
- 24.5℃
09-3阶内容-1.5.3-Spring Boot集成redis-2
redis常用的几大类数据结构 1、String ,token存储、分布式锁、计数 、json存储 2、Hash,购物车。。。 3、List 4、Set 集合,不重复,抽奖、朋友圈... ,交并集 5、Zset score ,做排行榜... key \*condition scan count 1000 set key...
- 2026-06-27 16:57
- 11
- 0
- 0
- 25.1℃
08-3阶内容-1.5.3-Spring Boot集成redis-1
本文介绍Spring Boot集成Redis的完整流程:创建项目、添加依赖(spring-boot-starter-data-redis及连接池)、配置Lettuce连接参数、通过配置类设置Key/Value序列化(使用RedisSerializer.string和json)以确保数据可读,最后在Controller中测试五大数据类型API。
- 2026-06-27 16:57
- 14
- 0
- 0
- 25.4℃
07-3阶内容-1.5.1-linux常用命令
# 本节要点 - 了解操作系统 - 了解Linux - 认识linux文件系统 - 理解linux和Window系统文件差异 - 各类命令 # 一、什么是操作系统 1、操作系统(OS),是管理计算机硬件和软件的资源的系统。 2、操作系统是人与计算机交互的接口 3、操作系统核心功能包括:管理CPU、内存(RAM)、存储设...
- 2026-06-27 16:54
- 9
- 0
- 0
- 24.9℃
06-3阶内容-1.5.2-redis介绍
# 本节要点 - 认识什么是Redis - 为什么要用Redis - 理解非结构化数据 - window和linux下Redis安装和配置 # 一、什么是Redis https://redis.io/ 内存的一个数据库 所有的IO都是需要消耗时间的! !\[image-20260130095358889\](https...
- 2026-06-27 16:54
- 12
- 0
- 0
- 25.2℃
02-3阶内容-1.5.1-阿里云测试使用
### 课堂目标 1. 了解什么是服务器 2. 如何拥有一台服务器 3. 阿里云账号注册 4. 阿里云ECS使用 # 本节要点 - 阿里云账号注册与使用 - ECS服务器申请与防火墙管理 1、什么是服务器 游戏服务器、web应用服务器、图片服务器 --\>7x24小时不间断运行 服务器的扩展性强:有很多插槽、ECC内存...
- 2026-06-27 16:53
- 10
- 0
- 0
- 25.0℃
01-Windows下Ubuntu安装
本文详细介绍了在Windows系统下通过VMware虚拟机安装Ubuntu 24.04 LTS的完整步骤:首先下载并安装VMware Workstation Player,然后下载Ubuntu ISO镜像,最后在VMware中创建虚拟机并完成Ubuntu安装。重点包括虚拟机硬件配置建议(内存2-4GB、处理器2-4核、网卡NAT)及安装过程中的典型与自定义选项说明。
- 2026-06-27 16:53
- 15
- 0
- 0
- 25.5℃
04_RBAC+AOP-权限(动态菜单)
# 1 基于rbac+AOP实现权限控制 rbac:基于角色控制权限 每一个公司都不一样 rbac基础班 有不同的变种版 ## 1.1 rbac之5张表 \~\~\~sql -- 用户 drop table if exists tb_user; CREATE TABLE tb_user ( id bigint(20) ...
- 2026-06-15 14:57
- 8
- 0
- 0
- 24.8℃
Date、 LocalDate 、LocalTime 、LocalDateTime
本文介绍了Java中四种日期时间类:Date(过时,可格式化与解析)、LocalDate(仅日期,格式化为yyyy-MM-dd等)、LocalTime(仅时间,格式化为HH:mm:ss等)、LocalDateTime(日期+时间,格式化为yyyy-MM-dd HH:mm:ss等)。强调了各自默认输出格式、创建与赋值方法、使用DateTimeFormatter进行格式化和字符串解析。
- 2026-04-08 17:15
- 3
- 0
- 0
- 24.3℃
6.常用API
本文介绍了JDK常用API的核心概念,包括方法四要素(方法名、所属类、参数列表、返回值)。重点讲解了Object类:equals()和hashCode()的默认实现(基于地址)及重写规则(基于属性值),toString()和getClass()的用途,并通过字符串示例说明哈希碰撞。随后详述String类的构造方法(如new String(char[])等)和常用方法(equals、length、charAt、isEmpty、getBytes等),强调字符串常量池中地址比较的规则,以及null与空字符串的区别。
- 2026-04-07 17:58
- 4
- 0
- 0
- 24.4℃
mysql多版本安装与控制
本文介绍了在Windows上安装和管理多个MySQL版本的方法:下载zip解压,创建my.ini配置文件(指定端口、路径、字符集等),以管理员身份运行CMD,执行初始化命令获取临时密码,通过唯一服务名安装Windows服务,启动服务并修改root密码。核心是确保端口和路径不冲突,服务命名唯一。
- 2026-03-27 09:32
- 5
- 0
- 0
- 24.5℃
2.运算符 分支结构
本文介绍了Java中的运算符和分支结构,重点讲解了赋值运算符(基本类型传值,引用类型传地址)、算术运算符(包括+的加法与连接作用、/的整数除法、%的取余、++/--的前后置区别等),并通过案例演示了百分比计算和复杂表达式求值。关系运算符返回boolean值,比较基本类型用==,字符串用equals()方法。内容强调运算符的优先级、类型转换和常见陷阱。
- 2026-03-26 16:50
- 5
- 0
- 0
- 24.5℃