- 博客(181)
- 收藏
- 关注
原创 Springboot考研信息平台
Springboot考研信息平台是一个基于前后端分离架构的在线平台,旨在为考研学生、学校负责人和管理员提供全面的考研信息服务。前端采用Vue框架,结合Axios进行数据交互,Element Plus提供UI组件,Apache ECharts用于数据可视化。后端使用Springboot框架,MySQL作为数据库,Mybatis处理数据持久化,阿里云OSS用于文件存储。平台功能包括用户登录注册、考研信息查询、数据统计、管理员管理、学校负责人信息审核等。通过前后端分离,平台实现了高效开发、灵活技术选型、良好的可维
2025-05-15 20:45:08
1111
原创 初始化一个Springboot项目
在实际开发中,我们经常需要处理各种异常。为了提供统一的异常处理机制,我们可以自定义异常类和全局异常处理器。创建枚举类@GetterPARAMS_ERROR(40000, "请求参数错误"),NOT_LOGIN_ERROR(40100, "未登录"),NO_AUTH_ERROR(40101, "无权限"),NOT_FOUND_ERROR(40400, "请求数据不存在"),FORBIDDEN_ERROR(40300, "禁止访问"),SYSTEM_ERROR(50000, "系统内部异常"),
2025-05-15 19:59:07
898
原创 SpringBoot校园失物招领信息平台
这个基于 SpringBoot 的校园失物招领信息平台功能完善,界面友好,采用了前后端分离的架构,技术栈成熟稳定。通过区分管理员和用户角色,为不同用户提供了定制化的功能。管理员端提供了全面的管理功能,方便管理员对平台进行维护和监控。用户端提供了便捷的发布和查找失物招领信息的入口,方便用户快速找回丢失的物品或归还捡到的物品。平台的登录注册功能保障了用户身份的合法性,数据可视化功能帮助管理员更好地了解平台运营状况。总的来说,这是一个功能强大、易于使用的校园失物招领信息平台。
2025-05-12 20:41:54
1351
原创 报错:failed to load config from D:\file\vue\examination_front\vite.config.ts error when starting dev s
我以为是我node版本不支持,但是看了一下发现并没有什么问题,我记得上一次还是能运行的。之后我打开之前能用的vue3项目,把node_modules文件夹删除掉,重新进行。发现他提示我vite’ 不是内部或外部命令,也不是可运行的程序或批处理文件。今天在创建vue3项目的时候报错了一个启动开发服务器时遇到了一个构建错误。查询了一下,执行npm i 的时候,他并没有帮我安装vite。最后执行安装,就能启动了。
2024-12-20 15:52:34
601
原创 Springboot + vue 健身房管理系统项目部署
许多人在拿到 Spring Boot 项目的源码后,不知道如何运行。我以 Spring Boot + Vue 健身房管理系统的部署为例,详细介绍一下部署流程。大多数 Spring Boot 项目都可以通过这种方式部署,希望能帮助到大家。。
2024-11-20 16:42:42
1443
原创 从零开始理解Spring Security的认证与授权
权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。那么如何实现权限呢?下面列举以下几个方案:方案一:使用权限框架 Shiro Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份 认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。Shiro最大的特点是 不跟任何的框架或者容器捆绑,可以独立运行。
2024-11-20 15:36:35
962
1
原创 Springboot图书管理系统
Spring Boot图书管理系统是一个基于Spring Boot框架开发的应用程序,旨在实现对图书的增删改查(CRUD)操作。
2024-11-19 19:10:41
572
1
原创 Java解析excel表格工具EasyExcel
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。
2024-11-18 21:53:47
519
原创 高效管理任务:XXL-Job 使用教程
任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力,而是由系统自动去执行任务。某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。某银行系统需要在信用卡到期还款日的前三天进行短信提醒。某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。12306会根据车次的不同,设置某几个时间点进行分批放票。如何实现任务调度?多线程方式,结合sleepJDK提供的API,例如:Timer、ScheduledExecutor。
2024-11-18 10:30:00
2106
原创 TDesign了解及使用
TDesign 是腾讯推出的设计系统,旨在提供一致的设计语言和视觉风格,帮助用户形成连续、统一的体验认知。主要特点:提供了丰富的 UI 组件库,方便开发者快速构建界面。提供了一系列设计资产,如图标、颜色、字体等,方便设计师进行设计工作。详细的设计指南帮助设计师和开发者理解和应用 TDesign 的设计原则。TDesign 强调一致的设计语言和视觉风格,确保用户在使用不同产品时能够获得一致的体验。官网地址TDesign 官网UI 组件库TDesign Vue 组件库设计指南TDesign 设计指南。
2024-11-09 11:52:28
2167
原创 TypeScript 基础语法及使用
TypeScript(简称 TS)是JavaScript的超集(继承了JS全部语法)是微软开发的开源编程语言,可以在任何运行JavaScript的地方运行,TypeScript = Type + JavaScript。简单说,就是在JS的基础上,为JS添加了类型支持。类型注解:是指在变量、函数等定义的时候,使用特定语法(: type)来指定其类型,并在代码中限制只能接收特定类型的值。为什么要用TypeScript?有利于发现错误(编写时)有利于代码的静态分析便于语法提示和自动补全。
2024-11-09 10:28:04
1179
原创 Vue3入门介绍及快速上手
所以对于前端工程化,说白了,就是在企业级的前端项目开发中,把前端开发所需要的工具、技术、流程、经验进行规范化和标准化。我们来看下面这个图,有三个组件,组件A的子组件分为是B和C,其中B和C是兄弟关系。我们这次重点研究是父子组件的通信,如果想要实现B和C的通信,需要使用第三方组件pinia才行(不是课程重点)介绍:create-vue是Vue官方提供的最新的脚手架工具,用于快速生成一个工程化的Vue项目。执行上述指令,将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具。
2024-11-08 22:09:33
1967
原创 设计模式概述
直到1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)等 4 位作者合作出版了《设计模式:可复用面向对象软件的基础》一书,在此书中收录了 23 个设计模式,这是设计模式领域里程碑的事件,导致了软件设计模式的突破。GoF(四人组)书中提供了模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器等 11 种行为型模式。
2024-10-30 21:27:13
627
原创 图数据库的力量:深入理解与应用 Neo4j
Neo4j 是由 Java 实现的开源 NoSQL 图数据库。自 2003 年开始开发,2007 年正式发布第一版并将源码托管于 GitHub。作为图数据库的代表产品,Neo4j 已经在众多行业项目中广泛应用,如网络管理、软件分析、组织和项目管理及社交网络等。Neo4j 官网:Neo4j 提供了专业数据库级别的图数据模型存储,具备完整的数据库特性,包括 ACID 事务支持、集群支持、备份和故障转移等功能。
2024-09-16 15:05:51
2906
原创 SpringCloud神领物流学习笔记:项目概述(一)
SpringCloud神领物流学习笔记:项目概述(一)1、项目介绍2、基本业务流程3、系统架构4、技术架构 神领物流是一个基于微服务架构体系的【生产级】物流项目系统,接近企业真实场景的项目,,它涵盖了物流领域的各个方面,包括货物信息管理、订单管理、运输管理、仓储管理、人员管理等多个方面。这个系统的设计完全基于微服务架构,每个功能模块都是一个独立的微服务,每个微服务都有自己的数据库和独立的服务接口。这种设计方式使得神领物流系统具有高度的业务完整度、真实度和复杂度,让学生感受到真实企业开发的挑战和难度。
2024-09-10 20:20:33
2143
3
原创 SpringCloud乐尚代驾学习笔记:司机端登录(四)
修改项目配置文件和Nacos里面配置文件内* 创建类,读取配置文件内容,微信小程序id和秘钥-- 因为司机端和乘客端相同的,从乘客端直接复制相关类就可以了
2024-08-30 21:33:06
744
5
原创 SpringCloud乐尚代驾学习笔记:乘客端登录(三)
乘客端只要登录,没有注册,登录方式为微信小程序登录,乘客登录我们根据微信接口拿到微信OpenId(全局唯一),到客户表(客户即乘客)查询OpenId是否存在,如果不存在即为注册,添加一天乘客记录;存在则根据用户信息生成token返回。官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。说明:
2024-08-30 16:49:10
1730
原创 SpringCloud乐尚代驾学习笔记:环境搭建(二)
如果已经生成过密钥字符串,那么默认情况,页面会隐藏密钥字符串,你只能点击重置按钮,生成新的密钥字符串了。因为移动端项目采用了UniApp架构,正常情况下是在HBuildeX上面开发小程序,编译后在微信开发者工具上运行调试,但是我们不用开发UniApp前端项目,程序已经开发好了,所以就可以不使用HBuildeX工具了。,然后填写好注册信息,然后微信平台会给你发送一封电子邮件。你需要点击电子邮件中的激活小程序账号的链接,然后在跳转的页面中,个人详细信息,这样才算是把个人主体的微信小程序开发者账号给注册下来。
2024-08-29 18:17:41
1727
1
原创 SpringCloud乐尚代驾学习笔记:项目概述(一)
SpringCloud乐尚代驾学习笔记:项目概述(一)1、背景和功能2、核心技术3、使用的云服务4、技术架构图5、业务流程图5、项目模块。
2024-08-29 09:30:00
3179
原创 SpringCloud天机学堂:分布式任务调度
官网地址:XXL-JOB的运行原理和架构如图:执行器:我们的服务引入一个XXL-JOB的依赖,就可以通过配置创建一个执行器。负责与XXL-JOB调度中心交互,执行本地任务。调度中心:一个独立服务,负责管理执行器、管理任务、任务执行的调度、任务结果和日志收集。接下来,把之前的SpringTask任务改成XXL-JOB的任务。我们修改tj-learning模块下的,将原本的@Scheduled注解替换为@XXLJob注解:其中,@XxlJob注解中定义的就是当前任务的名称。
2024-08-19 22:28:27
1639
原创 SpringCloud天机学堂:实时排行榜功能
在的中定义一个新的KEY前缀:注意,KEY的后缀是时间戳,我们最好定义一个,方便后期使用。因此,我们需要修改tj-commom中的DateUtils,添加一个。
2024-08-19 22:14:21
1166
1
原创 SpringCloud天机学堂:Redis BitMap 实现用户签到功能详解
Redis BitMap 是一种基于字符串类型的特殊数据结构,用于高效处理大量布尔值(0或1)。它在需要处理大规模数据时特别有用,如用户活动跟踪、权限管理和大规模数据的快速计数等场景。BitMap 的核心优势在于其空间效率和操作速度。每个比特只占用一位空间,因此在处理大规模布尔值数据时非常节省内存。例如,存储 1 亿个布尔值,BitMap 只需要约 12.5MB 的内存。Redis BitMap 是一种高效、紧凑的位操作工具,特别适合处理大规模布尔值数据的场景。
2024-08-19 22:08:55
752
原创 IDEA神级插件:MybatisPlus代码生成器
虽然网上有许多关于MybatisPlus代码生成的教程,但大多需要手动添加各种依赖,配置模板引擎,步骤繁琐。今天,我们将为您介绍一款既简单又实用,能完美满足需求的IDEA插件。它无需额外依赖,无需复杂配置,只需简单几步操作,即可生成完整的MybatisPlus风格代码。通过使用这款强大的IDEA插件,我们可以显著提高开发效率,减少重复劳动,降低错误率。在软件开发过程中,我们经常遇到这样的情况:新需求涌现,需要添加多个数据库表。这些传统方法不仅耗时费力,还容易出错,更谈不上代码的优雅性。
2024-08-15 21:48:30
8961
12
原创 Feign整合Sentinel实现服务降级
在微服务架构中,服务之间的调用是非常频繁的。这时,如果没有适当的容错机制,可能会导致级联失败,影响整个系统的可用性。这个配置启用了Feign对Sentinel的支持,允许使用Sentinel来控制服务调用的流量和实现降级。快速失败: 当知道某个调用注定会失败时,可以快速返回,而不是等待超时,这样可以提高系统的响应速度。减少资源消耗: 在高并发场景下,可以通过降级减少对某些非核心服务的调用,从而节省系统资源。保护系统: 当被调用的服务出现问题时,通过降级可以避免调用方服务被拖垮。指定了降级处理的工厂类。
2024-08-14 22:05:08
726
原创 SpringCloud天机学堂:高并发优化(五)
首先,我们要定义一个工具类,帮助我们改造整个业务。在提交学习记录业务中,需要用到异步任务和缓存的地方有以下几处:① 添加播放记录到Redis,并添加一个延迟检测任务到DelayQueue② 查询Redis缓存中的指定小节的播放记录③ 删除Redis缓存中的指定小节的播放记录④ 异步执行DelayQueue中的延迟检测任务,检测播放进度是否变化,如果无变化则写入数据库@Slf4j@Component。
2024-08-13 21:46:38
1465
原创 SpringCloud天机学堂:学习计划与进度(四)
需要注意的是这个查询其实是一个分页查询,因为页面最多展示10行,而学员同时在学的课程可能会超过10个,这个时候就会分页展示,当然这个分页可能是滚动分页,所以没有进度条。因此,查询这个接口的请求肯定是请求到课程微服务,查询课程、章节信息,再由课程微服务向学习微服务查询学习进度,合并后一起返回给前端即可。用户创建完计划自然要开始学习课程,在用户学习视频的页面,首先要展示课程的一些基础信息。其中,课程、章节、目录信息等数据都在课程微服务,而学习进度肯定是在学习微服务。,哪些小节已经学习了,哪些已经学完了。
2024-08-13 21:37:05
1394
1
原创 SpringCloud天机学堂:我的课表(三)
因此,我们要做的事情就是根据courseId集合查询课程信息,然后分别计算每个课程的有效期,组织多个LearingLesson的数据,形成集合。课程(course)的信息是由课程服务(course-service)来维护的,目前已经开发完成并部署到了虚拟机的开发环境中。如果没有这样的接口,则需要联系维护该服务的同事,而支付成功后,交易服务会基于MQ通知的方式,通知学习服务来执行加入课表的动作。订单中与课表有关的字段就是userId、courseId,因此这里要传递的就是这两个参数。
2024-08-11 20:55:29
1035
原创 Consider defining a bean of type ‘org.springframework.cloud.client.loadbalancer.reactive.LoadBalance
是 Spring Cloud 负载均衡器的一个自动配置类,它不应该被直接注入到控制器或其他业务组件中。类型的 bean,但是系统中找不到这个 bean。一开始我以为是依赖导入错误,没有添加负载均衡的依赖。这个错误表明应用程序启动失败,主要原因是。发现不知道什么时候idea自己帮我注入了。这行代码实际上是一个错误的依赖注入。但是,添加完依赖后,重启还是一样的。将它删除后,项目成功启动。
2024-08-11 09:38:35
828
原创 SpringCloud天机学堂环境搭建(二)
将自己团队开发的微服务部署到开发环境,作为一个微服务组件,与开发环境中的其它微服务联调,测试整个微服务是否正常工作。第二,你的电脑可能无法运行这数十、数百的微服务。因此,企业往往会提供一个通用的公共开发、测试环境,在其中部署很多公共服务,以及其它团队开发好的、开发中的微服务。接口开发完成后,可能需要调用其它微服务接口,此时可以调用开发环境中的其它微服务,测试接口功能是否正常工作。当然,实际中我们可以把集成测试与组件测试合并,开发完成后直接与开发环境的其它微服务联调,测试服务工作状态。
2024-08-10 13:56:26
1564
1
原创 SpringCloud天机学堂项目介绍(一)
天机学堂是一个基于微服务架构的生产级在线教育项目,核心用户不是K12群体,而是面向成年人的非学历职业技能培训平台。相比之前的项目课程,其业务完整度、真实度、复杂度都非常的高,与企业真实项目非常接近。 通过天机学堂项目,你能学习到在线教育中核心的学习辅助系统、考试系统,电商类项目的促销优惠系统等等。更能学习到微服务开发中的各种热点问题,以及不同场景对应的解决方案。
2024-08-10 13:52:45
1186
原创 修改nacos实力权重或者对某实例下线报错
原因:Nacos采用raft算法来计算Leader,并且会记录上次启动的集群地址,所以当我们自己的服务器IP改变时(网络环境不稳定,如WIFI,IP地址也经常变化),导致raft记录的集群地址失效,导致选Leader出现问题,解决方法:删除Nacos根目录下data文件夹下的。在Nacos控制台进行上述操作,错误信息。文件夹,重启nacos即可。
2024-08-09 12:51:12
451
原创 Elasticsearch操作
虽然无法修改mapping中已有的字段,但是却允许添加新的字段到mapping中,因为不会对倒排索引产生影响。因此修改索引库能做的就是向索引库中添加新字段,或者更新索引库的基础属性。由于Elasticsearch采用的是Restful风格的API,因此其请求方式和路径相对都比较规范,而且请求参数也都采用JSON风格。根据rest风格,新增是post,查询应该是get,不过查询一般都需要条件,这里我们把文档id带上。:如果根据id删除时,id不存在,第二步的新增也会执行,也就从修改变成了新增操作了。
2024-07-31 21:08:49
512
原创 Elasticsearch简单了解
注意,这里我们采用的是elasticsearch的7.12.1版本,由于8以上版本的JavaAPI变化很大,在企业中应用并不广泛,企业中应用较多的还是8以下的版本。Elasticsearch的关键就是倒排索引,而倒排索引依赖于对文档内容的分词,而分词则需要高效、精准的分词算法,IK分词器就是这样一个中文分词算法。elasticsearch是面向**文档(Document)**存储的,可以是数据库中的一条商品数据,一个订单信息。因此,正向索引适合于根据索引字段的精确搜索,不适合基于部分词条的模糊匹配。
2024-07-31 20:52:19
502
原创 SpringAMQP使用
开发业务功能的时候,肯定不会在控制台收发消息,而是应该基于编程的方式。由于RabbitMQ采用了AMQP协议,因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息,都可以与RabbitMQ交互。并且RabbitMQ官方也提供了各种不同语言的客户端。但是,RabbitMQ官方提供的Java客户端编码相对复杂,一般生产环境下我们更多会结合Spring来使用。而Spring的官方刚好基于RabbitMQ提供了这样一套消息收发的模板工具:SpringAMQP。
2024-07-30 08:15:00
547
原创 消息队列RabbitMQ
消息队列是一种在分布式系统中常用的通信机制,简称为MQ,它允许不同的应用程序或服务之间通过发送和接收消息来进行异步通信。对于小型企业而言,出于成本考虑,我们通常只会搭建一套MQ集群,公司内的多个不同项目同时使用。由于没有消费者存在,最终消息丢失了,这样说明交换机没有存储消息的能力。发送到交换机的消息,只会路由到与其绑定的队列,因此仅仅创建队列是不够的,我们还需要将其与交换机绑定。据统计,目前国内消息队列使用最多的还是RabbitMQ,再加上其各方面都比较均衡,稳定性也好。的隔离特性,将不同项目隔离。
2024-07-30 08:00:00
1492
原创 SpringCloud微服务保护方案
Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。官方网站:核心库(Jar包):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。在项目中引入依赖即可实现服务限流、隔离、熔断等功能。控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。为了方便监控微服务,我们先把Sentinel的控制台搭建出来。下载jar包。
2024-07-29 08:45:00
353
原创 SpringCloud分布式事务
都可以满足ACID特性,但全局事务跨越多个服务、多个数据库,事务并未遵循ACID的原则,归其原因就是参与事务的多个子业务在不同的微服务,跨越了不同的数据库。虽然每个单独的业务都能在本地遵循ACID,但是它们互相之间没有感知,不知道有人失败了,无法保证最终结果的统一,也就无法遵循ACID的事务特性了。就是找一个统一的事务协调者,与多个分支事务通信,检测每个分支事务的执行状态,保证全局事务下的每一个分支事务同时成功或失败即可。A是规范,目前主流数据库都实现了这种规范,实现的原理都是基于两阶段提交。
2024-07-29 08:45:00
667
原创 Jmeter测压工具
可以Apache Jmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi。Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。:上面的配置只能保证本次运行是中文,如果要永久中文,需要修改Jmeter的配置文件。注意:前面不要出现#,#代表注释,另外这里是下划线,不是中划线。打开jmeter文件夹,在bin目录中找到。然后发送请求后就可以查看报告了。
2024-07-28 13:10:46
423
原创 SpringCloud配置管理
编写监听器。也不会监听路由变更,所以,我们无法利用上节课学习的配置热更新来实现路由更新。微服务共享的配置可以统一交给Nacos保存和管理,在Nacos控制台修改配置后,Nacos会将配置变更推送给相关的微服务,并且无需重启即可生效,实现配置热更新。我们就可以在项目启动时先更新一次路由,后续随着配置变更通知到监听器,完成路由更新。网关的路由同样是配置,因此同样可以基于这个功能实现动态路由功能,无需重启网关即可修改路由配置。因此,我们必须监听Nacos的配置变更,然后手动把最新的路由更新到路由表中。
2024-07-28 09:00:00
1881
原创 SpringCloud网关登录校验
无论是还是都支持自定义,只不过编码方式、使用方式略有差别。自定义不是直接实现,而是实现。@Component@Override@Override// 获取请求// 编写过滤器逻辑System.out.println("过滤器执行了");// 放行注意:该类的名称一定要以为后缀!spring:cloud:gateway:- PrintAny # 此处直接以自定义的GatewayFilterFactory类名称前缀类声明过滤器@Component。
2024-07-27 22:26:27
832
压力测试工具(Jmeter)
2024-07-28
SpringBoot+Vue尚庭公寓项目前端代码
2024-06-09
尚庭公寓后端初始化代码
2024-06-06
Linux版MinIO安装包
2024-06-04
javaweb图书管理系统
2024-05-27
JavaWeb商品管理系统
2024-01-27
python实现超级玛丽游戏源码+文档详细解说
2023-12-12
java互联网大厂面试真题合集,包含百度腾讯阿里pdd等
2023-11-13
java学生管理系统源码
2023-11-11
网页设计,前端ECharts动态可视化大屏
2023-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人