- 博客(64)
- 收藏
- 关注
原创 ElasticSearch-基础
本文介绍了如何利用Elasticsearch优化电商平台黑马商城的商品搜索功能。主要内容包括: 传统数据库模糊搜索存在的问题:性能随数据量增加急剧下降、功能单一、无法处理错别字或拼音搜索等。 Elasticsearch的核心优势:基于倒排索引技术实现高性能搜索,支持复杂查询和数据分析功能。 技术实现: 安装Elasticsearch和Kibana可视化工具 倒排索引原理及与正向索引的比较 使用IK分词器进行中文分词处理 索引库的创建、查询、修改和删除操作 文档的增删改查及批量导入 实际应用: 设计商品索引库
2025-10-28 16:06:42
1141
原创 RabbitMQ-高级
文章摘要:本文详细探讨了RabbitMQ消息可靠性的保障方案,包括生产者确认机制、消息持久化、消费者确认与重试机制等。针对订单支付场景,提出通过延迟消息实现超时订单自动取消功能,并介绍了死信交换机和延迟插件两种实现方式。最后,作业部分要求完善订单取消逻辑并实现通用的消息消费失败处理机制。全文从实际问题出发,系统性地讲解了如何构建高可靠的分布式消息系统。
2025-10-26 20:34:46
898
原创 RabbitMQ基础
摘要:本文探讨了微服务架构中的同步调用与异步调用方式,重点介绍了基于RabbitMQ的异步通信解决方案。通过分析同步调用存在的扩展性差、性能下降和级联失败等问题,提出了使用消息队列实现解耦的异步调用方案。文章详细讲解了RabbitMQ的安装配置、交换机类型(Fanout、Direct、Topic)、消息收发操作以及SpringAMQP框架的使用方法。最后,通过实际案例演示了如何将订单支付和购物车清理功能从同步调用改造为异步消息通知模式,有效提升了系统性能和可靠性。
2025-10-22 21:50:38
1015
原创 SpringCloud-服务保护和分布式事务
Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。核心库(Jar包):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。在项目中引入依赖即可实现服务限流、隔离、熔断等功能。控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。为了方便监控微服务,我们先把Sentinel的控制台搭建出来。1)下载jar包2)运行。
2025-10-21 15:44:44
1006
原创 SpringCloud-网关
微服务网关与配置管理实践 本文介绍了微服务架构下网关与配置管理的核心解决方案。针对多服务入口问题,通过Spring Cloud Gateway实现统一路由,隐藏微服务细节。针对跨服务鉴权难题,利用全局过滤器完成JWT校验,并通过请求头传递用户信息。结合Nacos实现配置动态管理:共享配置减少冗余,热更新避免重启,并通过监听机制实现动态路由调整。最终构建了灵活、安全的微服务体系,解决了入口分散、鉴权重复、配置维护等痛点,提升了系统的可维护性和扩展性。
2025-10-20 14:53:56
770
原创 SpringCloud-基础
本文介绍了微服务架构的演变过程及其核心概念。首先分析了单体架构在大型项目中面临的协作成本高、发布效率低和可用性差等问题,通过黑马商城案例演示了热点接口对系统整体性能的影响。随后讲解了微服务架构的解决方案,包括服务拆分原则(高内聚、低耦合)、Nacos注册中心实现服务治理,以及OpenFeign的远程调用方式。重点阐述了如何通过RestTemplate和OpenFeign实现服务间调用,并优化了连接池配置和日志管理。文章还提出了最佳实践方案,将Feign客户端抽取为独立模块实现代码复用。最后通过购物车服务调用
2025-10-17 15:24:50
920
原创 docker
本文介绍了Docker技术在项目部署中的优势与应用。主要内容包括: Docker解决了传统部署中命令复杂、环境依赖等问题,通过镜像和容器实现跨平台部署; 详细讲解了Docker基础知识,包括常用命令、数据卷挂载、网络配置等核心概念; 演示了如何通过Dockerfile自定义镜像,并构建Java项目镜像; 以黑马商城项目为例,展示了多容器(MySQL、Nginx、Java应用)的完整部署流程; 介绍了Docker Compose工具,通过YAML文件实现多容器编排部署,简化复杂应用的部署过程。 Docker技
2025-10-15 11:35:53
1080
原创 MybatisPlus
MyBatisPlus 简化开发实践指南 本文介绍了MyBatisPlus在企业开发中的高效应用。针对单表CRUD重复编码问题,MyBatisPlus通过BaseMapper接口、条件构造器和常用注解,大幅提升开发效率。主要内容包括: 基础配置:快速集成MyBatisPlus,通过继承BaseMapper实现基本CRUD 核心功能: 条件构造器(QueryWrapper/UpdateWrapper)构建复杂查询 Lambda表达式避免字段名硬编码 Service层封装常用业务模板方法 高级特性: 枚举和JS
2025-10-13 10:20:10
859
原创 苍穹外卖-工作台实现、Apache POI、导出Excel报表
本文介绍了工作台功能实现和数据导出功能的开发过程。工作台作为系统运营的数据看板,包含今日数据、订单管理、菜品总览和套餐总览四个模块,通过Controller、Service和Mapper三层架构实现数据统计和展示功能。数据导出功能基于Apache POI库开发,支持将30天内运营数据导出为Excel报表,包括营业额、订单完成率、新增用户等关键指标。系统采用模板方式进行Excel生成,确保数据格式规范统一。通过前后端联调测试,验证了工作台数据展示和报表导出功能的完整性和可用性。
2025-10-10 21:57:37
763
原创 苍穹外卖-Apache ECharts与数据统计
本文介绍了基于Apache ECharts实现餐饮系统数据可视化统计功能的技术方案。课程内容包括营业额统计、用户统计、订单统计和销量排名Top10四个模块,通过折线图和柱状图直观展示数据。 关键技术实现: 使用ECharts图表库进行数据可视化展示 后端采用Spring Boot框架开发RESTful API 通过VO对象封装图表数据,包括日期列表、数值列表等 使用MyBatis进行数据库查询和结果映射 各功能模块均包含完整的Controller、Service、Mapper层实现,支持按时间段查询统计:
2025-10-10 15:30:28
1179
原创 苍穹外卖-SpringTask、订单状态定时处理、WebSocket来单提醒和催单提醒
本文介绍了基于SpringTask和WebSocket实现的订单处理系统功能开发。主要内容包括:1. 使用SpringTask定时任务框架处理订单状态,包括支付超时取消订单和派送中超时自动完成订单;2. 通过WebSocket实现实时通信功能,包括来单提醒和客户催单;3. 详细说明了cron表达式配置、定时任务类开发、WebSocket服务端组件实现等关键代码;4. 提供了功能测试方法和注意事项。该系统实现了订单状态自动处理、商家实时提醒等功能,提升了订单处理效率和用户体验。
2025-10-09 09:12:57
715
原创 苍穹外卖-地址簿功能、用户下单、订单支付
本文介绍了外卖系统开发中的三个核心功能模块:地址簿管理、用户下单和订单支付的实现方案。地址簿模块实现了增删改查、设置默认地址等功能,采用分层架构设计,包含Controller、Service、Mapper层。用户下单功能通过订单表和订单明细表存储数据,采用事务处理保证数据一致性。订单支付模块集成微信支付,包含支付配置、回调处理等关键流程,使用内网穿透技术实现支付结果通知。系统采用前后端分离架构,通过Swagger接口文档和前后端联调方式进行测试验证。
2025-10-06 09:44:53
1071
原创 苍穹外卖-缓存商品、购物车功能
Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:EHCacheCaffeineRedis(常用)
2025-10-05 10:31:07
812
原创 苍穹外卖-HttpClient、微信小程序开发、微信登录、商品浏览功能
本文介绍了使用HttpClient实现微信小程序登录及商品浏览功能的开发过程。主要内容包括: HttpClient基础 Apache Jakarta Common子项目,支持HTTP协议客户端编程 核心API:HttpClient、HttpClients、HttpGet、HttpPost 应用场景:支付、地图、验证码等第三方服务调用 微信小程序登录 登录流程:获取code → 换取openid → 生成token 实现自动注册新用户功能 使用JWT生成令牌并配置拦截器校验 商品浏览功能 分类展示菜品和套餐
2025-09-29 10:25:04
955
原创 苍穹外卖-Redis、店铺营业状态设置
Redis是一个高性能的内存键值数据库,支持多种数据结构(字符串、哈希、列表、集合、有序集合)。本文介绍了Redis的安装配置、常用命令及在Java中的操作方法,重点讲解了通过SpringDataRedis的RedisTemplate类实现数据操作。最后以"店铺营业状态设置"功能为例,展示了如何利用Redis存储和查询营业状态(1表示营业,0表示打烊),并实现管理端和用户端的状态查询接口。该功能通过Redis高效存储状态数据,确保小程序端能实时响应营业状态变化。
2025-09-27 11:27:03
798
原创 苍穹外卖-公共字段自动填充、菜品管理
本文摘要: 本文详细介绍了菜品管理系统的功能实现,主要包括公共字段自动填充、新增菜品、菜品分页查询、删除菜品和修改菜品五大核心功能。通过AOP切面编程实现了公共字段的统一处理,使用阿里云OSS服务完成文件上传,并采用事务管理确保多表操作的数据一致性。文章涵盖了从需求分析、接口设计到代码实现的完整流程,重点讲解了各功能的实现思路、技术要点及测试方法,为开发餐饮管理系统提供了完整的技术方案。
2025-09-25 08:34:56
607
原创 苍穹外卖-员工管理、菜品分类管理
本文介绍了员工管理和菜品分类管理系统的功能实现,主要包括以下内容: 员工管理模块 实现新增员工功能,包括表单验证、唯一性校验和数据持久化 分页查询员工信息,支持按姓名模糊搜索 员工账号启用/禁用功能 员工信息编辑功能,支持数据回显和更新 菜品分类管理模块 分类新增、分页查询、修改和删除功能 分类启用/禁用状态管理 分类类型查询功能 删除分类前的关联校验(菜品和套餐) 关键技术点: 使用ThreadLocal实现线程安全的数据共享 MyBatis分页插件PageHelper实现分页查询 JWT令牌认证机制 R
2025-09-22 15:52:06
766
原创 苍穹外卖-1
摘要:本文介绍了前后端联调中的nginx反向代理和负载均衡配置,以及登录功能的密码加密改进。通过nginx可将前端请求代理到后端服务,实现负载均衡和安全性保障。同时讲解了使用MD5加密存储密码的方法。此外,文章还介绍了Swagger框架的使用步骤,包括knife4j的集成和常用注解,用于自动生成接口文档,提高开发效率。最后对比了Yapi和Swagger在接口管理中的不同作用。
2025-09-21 09:36:09
678
原创 案例部署-Linux
本文介绍了Linux操作系统的基础知识,包括系统简介、安装方式、目录结构和常用命令。Linux作为免费开源的操作系统,在企业服务器领域应用广泛。文章详细讲解了Linux的目录结构特点,以及与Windows系统的区别。重点介绍了文件操作命令(ls、cd、cat、more等)、目录管理命令(mkdir、rmdir)、文件操作命令(cp、mv、rm)以及打包压缩命令tar。此外还涵盖了文本编辑工具vim的使用方法,包括三种模式切换和常用操作指令。最后介绍了文件查找命令find和文本搜索命令grep的用法。这些基础
2025-09-19 22:27:12
1022
原创 前端Web案例-登录&退出
本文介绍了员工管理系统的前端功能实现,主要包括员工信息的增删改查、登录认证及部署方案。系统采用Vue3+Element Plus+Pinia技术栈,实现了员工信息的修改(分查询回显和保存两步)、单个/批量删除功能,以及包含表单验证的数据交互。登录模块通过Pinia存储令牌,并利用axios拦截器实现请求认证。系统还解决了页面刷新数据丢失问题,采用pinia-plugin-persistedstate实现状态持久化。最后介绍了项目打包部署到Nginx的配置方法,包括反向代理设置。整个系统实现了完整的员工管理业
2025-09-17 21:25:31
905
原创 前端Web案例-员工管理
本文详细介绍了员工管理系统的前端实现,主要包含两大功能模块: 条件分页查询功能 使用ElementPlus组件构建搜索表单,实现姓名、性别、入职时间等条件查询 通过watch监听器处理日期范围选择 表格展示数据并集成分页组件,支持动态调整每页显示数量 新增员工功能 采用对话框表单形式,包含基本信息和工作经历两部分 工作经历支持动态添加/删除条目 实现表单校验规则(必填项、格式验证等) 集成文件上传组件处理员工头像 使用深度watch监听处理工作经历日期数据 系统采用Vue3组合式API开发,通过响应式数据驱
2025-09-16 11:44:45
1063
原创 前端Web案例-部门管理
我们在制作一个页面的时候,一定是先关注整体的页面布局,然后再关注具体的细节处理。所以这一小节,我们就先来完成页面的整体布局。我们会看到,整个页面分为这么三个部分:①. 页头部分②. 侧边栏③. 主区域而要完成这样的页面布局,我们其实是可以借助于中提供的Container布局容器来实现::外层容器。当子元素中包含或时,全部子元素会垂直上下排列, 否则会水平左右排列。:顶栏容器。<el-aside>:侧边栏容器。<el-main>:主要区域容器。:底栏容器。
2025-09-15 10:38:07
804
原创 前端Web-前端工程&TypeScript&Element
本文主要介绍了Vue工程化开发、TypeScript基础及ElementPlus组件库的使用。内容分为三部分: Vue工程化部分讲解了使用create-vue脚手架创建项目、目录结构、开发流程和API风格(组合式API与选项式API),并通过用户列表案例演示了工程化开发方式。 TypeScript部分介绍了TS作为JS超集的特点,基础类型、联合类型、函数类型、对象类型与接口等核心概念,以及类型推论等特性。 ElementPlus部分详细讲解了如何集成使用该UI组件库,重点演示了表格、分页、对话框和表单等常用
2025-09-14 08:59:18
675
原创 后端Web开发-Maven高级
本文介绍了Maven高级功能,主要包括三部分内容:1. 分模块设计与开发:讲解如何将大型项目拆分为独立模块(如pojo、utils等),便于管理和复用代码;2. 继承与聚合:通过创建父工程统一管理依赖版本,使用聚合实现一键构建多个模块;3. 私服使用:介绍了私服作为内部资源仓库的作用,详细说明了如何配置及上传下载资源。这些高级功能能有效解决中大型项目开发中的依赖管理、构建效率等问题,提升团队协作和项目管理能力。
2025-09-11 21:58:24
639
原创 后端Web实战-Spring原理
本文主要介绍了SpringBoot的核心原理与Web后端开发总结。在SpringBoot原理部分,重点讲解了配置优先级、Bean管理和自动配置机制。配置优先级从高到低为:命令行参数 > 系统属性 > properties > yml > yaml文件。Bean管理部分说明了如何获取Bean、作用域设置以及第三方Bean的配置方式。自动配置原理则是通过@EnableAutoConfiguration注解加载META-INF/spring/org.springframework.boot
2025-09-11 11:27:41
908
原创 后端Web实战-AOP
本文介绍了Spring框架中的AOP(面向切面编程)核心概念与实践应用。主要内容包括: AOP基础概念 通过方法耗时统计案例,展示AOP解耦、无侵入式增强方法的优势 核心概念:连接点(JoinPoint)、通知(Advice)、切入点(PointCut)、切面(Aspect) Spring AOP基于动态代理实现 AOP进阶技术 6种通知类型:@Around、@Before、@After等 通知执行顺序控制(@Order注解) 两种切入点表达式:execution和@annotation 连接点对象获取方法
2025-09-10 10:40:37
887
原创 Web后端实战-登录认证
本文详细介绍了Web应用中的登录功能实现与安全校验机制。主要内容包括: 登录功能开发 实现基于用户名密码的登录接口 服务端验证成功后返回包含JWT令牌的响应 前端存储令牌并在后续请求中携带 会话跟踪技术 对比Cookie、Session和JWT令牌三种方案 重点介绍JWT令牌的组成、生成和校验流程 JWT具有跨域支持、减轻服务器压力等优势 安全校验实现 通过过滤器(Filter)或拦截器(Interceptor)实现统一校验 校验逻辑包括:排除登录接口、检查请求头令牌、解析验证JWT 未登录或令牌无效时返回
2025-09-09 10:42:24
1131
原创 后端Web实战-删除&修改
本文详细介绍了员工管理系统的开发过程,包括批量删除员工、修改员工信息、异常处理及员工信息统计功能。重点阐述了批量删除时的事务控制、员工信息修改的动态SQL实现、全局异常处理器的应用,以及通过MyBatis进行数据统计报表开发。系统采用三层架构设计,前后端分离,后端提供RESTful API接口,前端通过ECharts等组件实现数据可视化展示。文中还详细说明了MyBatis中resultType与resultMap的使用场景区分,以及SQL查询优化技巧,为开发类似管理系统提供了完整的技术解决方案。
2025-09-05 10:44:46
1009
原创 后端Web实战—新增员工
本文介绍了如何实现员工管理系统中的新增员工功能,主要包括以下内容: 新增员工功能开发 通过POST请求接收JSON格式的员工数据 使用MyBatis实现员工基本信息和工作经历的分表存储 采用动态SQL批量插入工作经历数据 通过事务管理确保数据一致性 文件上传功能 实现本地文件存储 集成阿里云OSS对象存储服务 使用配置文件管理参数(properties/yml格式) 通过@ConfigurationProperties简化配置注入 事务管理 使用@Transactional注解控制事务 设置rollback
2025-09-04 09:14:31
1117
原创 后端Web实战-多表操作&员工列表查询
本文主要介绍了数据库多表操作的相关知识,包括多表关系设计和多表查询方法。在多表关系方面,详细讲解了一对多、多对多和一对一关系的实现方式,重点介绍了外键约束的作用及物理外键与逻辑外键的区别。在多表查询部分,系统阐述了内连接、外连接和子查询的语法和应用场景,并通过具体案例演示了分页查询的实现过程,包括基本分页查询和使用PageHelper插件进行分页查询的方法。最后,文章还介绍了带条件的分页查询实现,包括动态SQL的编写和参数封装技巧,为开发复杂查询功能提供了实用指导。
2025-09-01 20:59:36
1045
原创 后端Web实战-部门管理开发
本文详细介绍了部门管理系统的后端开发实现,包括删除、新增和修改部门功能的技术实现方案。文章首先阐述了删除部门功能的实现思路,详细说明了Controller层接收请求参数的三种方式,并给出了Mapper、Service、Controller三层的具体代码实现。在新增部门功能部分,重点讲解了JSON格式参数的接收方式及动态补齐字段的处理方法。对于修改部门功能,则分为查询回显和修改数据两个步骤,详细介绍了路径参数接收和动态SQL的实现。此外,文章还介绍了日志技术的应用,包括Logback框架的配置和使用方法,以及
2025-08-26 15:22:01
1043
原创 后端Web实战-Java代码操作数据库
本文摘要: Java数据库操作技术从JDBC到MyBatis的演进过程。JDBC是Java操作关系型数据库的基础API,通过DriverManager获取连接、Statement执行SQL、ResultSet处理结果集。文章详细讲解了JDBC的API使用、PreparedStatement防SQL注入原理及其性能优势。随后介绍了MyBatis持久层框架,通过注解或XML配置简化JDBC开发,重点说明了@Mapper接口、SQL映射、结果封装等核心功能。最后以部门查询案例展示了MyBatis的实际应用,包括实
2025-08-24 17:29:22
672
原创 后端Web实战-MySQL数据库
MySQL官方提供了两个版本:商业版本(MySQL Enterprise Edition)该版本是收费的,我们可以使用30天。官方会提供对应的技术支持。社区版本(MySQL Community Server)该版本是免费的,但是MySQL不会提供任何的技术支持。本课程,采用的是MySQL的社区版本(8.0.34)1.SQL语句可以单行或者多行书写,以分号结尾。2、SQL语句可以使用空格/缩进来增强语句的可读性。3、MySQL数据库的SQL语句不区分大小写。
2025-08-13 17:45:45
1145
原创 JavaWeb-后端Web实战(IOC + DI)
本文介绍了Web开发实战中的关键技术和实践方法。主要内容包括: 采用前后端分离开发模式,通过接口文档规范前后端交互; 使用Restful风格API设计规范; 通过SpringBoot实现部门查询功能,并引入统一响应结果Result类; 采用三层架构(Controller-Service-Dao)分层开发,提高代码复用性和可维护性; 使用IOC(控制反转)和DI(依赖注入)实现分层解耦,降低模块间耦合度; 介绍了@Autowired、@Qualifier、@Resource等依赖注入方式及其区别。 文章通过具
2025-08-11 11:18:38
1306
原创 JavaWeb-Web基础知识
本文介绍了Java Web开发的基础知识,包括Tomcat服务器、Servlet、HTTP协议和SpringBoot入门。Tomcat是Web应用服务器,包含bin和webapps目录;Servlet是Java Web核心组件,通过注解配置请求路径。HTTP协议详解了请求/响应格式、常见方法和状态码。重点讲解了SpringBoot快速开发Web应用的方法,包括创建项目、定义Controller类和运行测试,并解析了SpringBoot内嵌Tomcat和DispatcherServlet的工作原理。文章还对比
2025-07-27 19:03:26
1404
原创 JavaWeb-Maven基础
Maven是一个基于POM的项目管理和构建工具,主要功能包括依赖管理、项目构建和统一项目结构。它通过坐标机制管理依赖,自动从本地仓库、远程仓库或中央仓库下载所需jar包。Maven提供标准化的项目目录结构和跨平台构建命令(如compile、test、package等),并通过三套生命周期(clean/default/site)管理构建流程。依赖具有传递性,可通过<exclusions>标签排除不需要的依赖。单元测试方面,JUnit是最常用的测试框架,支持多种注解(@Test/@BeforeEac
2025-07-26 15:48:38
1040
原创 Java高级技术
本文主要介绍了Java开发中的单元测试、反射、注解和动态代理四大核心技术。在单元测试部分,详细讲解了JUnit框架的使用方法、测试规则和断言机制;反射部分重点展示了如何获取Class对象、操作类成员(构造器、字段、方法)以及反射在框架设计中的应用;注解部分涵盖自定义注解、元注解使用和注解解析技术;动态代理部分则通过泛型代理类实现方法执行时间的计算功能。这些技术共同构成了Java高级编程的基础,能够有效提升代码质量和开发效率。
2025-07-24 11:11:07
640
原创 Java-网络编程
本文介绍了Java网络编程的基础知识和实战案例。主要内容包括:1. 网络编程概述与Java解决方案(java.net包);2. 网络通信三要素(IP地址、端口、协议)及TCP三次握手原理;3. UDP通信实现(一发一收、多发多收);4. TCP通信实现(单发单收、多发多收、多客户端处理)及B/S架构原理;5. 实战项目:开发局域网聊天系统,包含GUI界面设计、服务端架构(线程池处理多客户端连接)、消息转发机制等核心功能实现。通过案例详细演示了登录验证、在线人数统计、群聊消息收发等关键功能的代码实现。
2025-07-22 10:44:20
1649
原创 Java-多线程
Java多线程编程总结 本文介绍了Java中线程的创建、管理和同步机制。主要内容包括: 线程创建三种方式: 继承Thread类:简单直接但有单继承局限 实现Runnable接口:灵活可共享资源 实现Callable接口:可获取返回值但使用复杂 线程API: 线程命名(setName/getName) 线程休眠(Thread.sleep) 线程插队(join) 线程安全与同步: 同步代码块(synchronized) 同步方法 Lock锁机制 线程通信(wait/notify) 线程池: ThreadPool
2025-07-17 15:17:26
1006
原创 Java-特殊文件、日志技术
本文介绍了Java中特殊文件处理和日志技术。特殊文件部分讲解了Properties文件的读写操作,XML文件的解析(使用dom4j框架)和创建方法,并简要提及了DTD和Schema约束。日志技术部分详细说明了Logback框架的使用,包括快速入门示例、核心配置文件(logback.xml)的配置方法,以及日志级别的设置规则。文章通过代码示例展示了如何实现关键功能,如Properties文件操作、XML解析和日志记录,为Java开发者提供了实用的文件处理和日志管理技术指导。
2025-07-15 20:00:36
851
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅