自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(174)
  • 收藏
  • 关注

原创 Axios的基本知识点以及vue的开发工程(基于大事件)详细解释

Axios 是一个用于发送 HTTP 请求的 JavaScript 库,简化了前端与后端服务器的交互。它像"快递员"一样在代码和服务器之间传递数据,支持 GET、POST 等请求方式,并自动处理 JSON 数据转换和错误处理。Axios 提供两种使用方式:直接引入脚本或通过 npm 安装,支持 Vue 的选项式和组合式 API 风格。为解决跨域问题,可通过 Vite 配置代理服务器。最佳实践是封装请求拦截器,在 request.js 中创建 Axios 实例并配置统一拦截逻辑,减少重复代

2025-09-22 19:18:13 1076 1

原创 vue3的基本指令以及对js的导入和导出

本文介绍了Vue 3的基础知识和开发技巧。主要内容包括:1)使用npm init vue@latest创建Vue项目;2)解析main.js文件的作用,将其比喻为"养花"过程;3)Vue 3的核心特性如Composition API、响应式系统改进、Teleport等;4)JavaScript模块导入导出方法;5)Vue常用指令v-bind和v-model的使用。文章还通过代码示例演示了如何创建Vue实例、实现数据绑定等基础操作,适合Vue初学者快速了解项目创建和基本语法。

2025-09-22 19:17:35 882 1

原创 uni-file-picker文件上传最佳实践

uni-file-picker文件上传组件摘要 uni-file-picker是uni-app的集成文件上传组件,支持图片、视频及文档(PDF/Word等)选择,提供单/多文件上传、预览删除、数量限制等功能。核心属性包括v-model绑定文件数组、file-mediatype指定类型、mode设置列表或九宫格布局等。通过事件@select、@success等实现交互逻辑,示例代码展示了头像上传(自动裁剪为圆形)及九宫格图片选择的典型用法。注意:上传后需替换临时路径为后端返回的正式URL存储。适用于移动端快速

2025-09-21 14:44:05 512

原创 mescroll-uni 完全指南——Vue3 setup格式

mescroll-uni是UniApp中实现下拉刷新和上拉加载的组件,它封装了分页管理、空状态提示等功能,开发者只需专注数据请求逻辑。安装组件后,通过mescroll-body包裹列表内容,配置down和up参数实现自动刷新和加载。使用Hook方式能更便捷地获取实例方法,注意page.num应从0开始,避免首屏重复请求。切换分类或搜索时需调用resetUpScroll()重置分页。常见问题包括初始页码设置错误和首屏重复请求,需正确配置参数避免数据错位。

2025-09-21 13:37:48 743

原创 Java反射机制:动态编程的核心奥秘

Java反射机制是运行时动态访问和操作类结构的核心技术。通过Class、Method、Field等核心API,可实现对象实例化、方法调用、属性读写等操作,典型应用包括依赖注入、ORM框架、序列化和AOP。反射流程包含:获取Class对象→实例化→调用方法→操作字段。在Spring等框架中,反射用于动态创建Bean、定时任务调度以及AOP切面编程(如方法拦截和增强)。虽然反射灵活高效,但需注意性能开销和安全隐患。该机制为Java提供了强大的运行时扩展能力,是许多高级功能的基础实现方式。

2025-06-27 14:48:45 774

原创 SpringSecurity权限控制全解密

本文详细解析了SpringSecurity权限控制的核心流程。首先介绍了所有请求都会经过SpringSecurity过滤器链的执行顺序,包括跨域处理、自定义TokenFilter等关键环节。接着阐明为何需要让用户实体实现UserDetails接口,以及权限信息的封装原理。重点讲解了TokenFilter的工作机制,包括JWT校验、用户信息解析和权限封装过程。最后解释了SecurityContextHolder的线程安全原理,以及为何必须将权限信息封装到Authentication对象中,否则会导致权限验证失

2025-06-27 14:46:46 935

原创 定时器任务——若依源码分析

《Quartz定时任务管理工具ScheduleUtils解析》摘要: ScheduleUtils是若依框架中管理Quartz定时任务的核心工具类,主要实现任务的创建、更新、暂停和删除操作。其核心机制包括:1)通过JobDetail和CronTrigger封装任务配置,支持并发控制(QuartzJob/QuartzDisallowConcurrentExecution);2)采用模板方法模式实现任务执行前后的统一日志记录;3)提供三种Misfire策略(IgnoreMisfires/FireAndProcee

2025-06-10 23:06:31 1233

原创 扁平表+递归拼树思想

摘要:本文对比了数据库存储行政区域信息的两种方案:三表分层模型和单表递归模型。重点推荐单表方案(邻接表模型),通过parent_id字段建立层级关系,具有结构灵活、扩展性强等优点。详细讲解了若依框架中动态菜单的实现方式,包括数据库设计、SQL查询和Java递归构建树形结构的完整流程,并提供了行政区域信息的实现示例。该方案通过一次全表查询加递归处理,即可生成任意深度的树形数据,适合多级分类场景。

2025-06-10 23:06:00 714

原创 如何在uniapp上面使用高德地图

但是要注意,我们的uniapp如果单纯建一个lib文件夹并不会打包进入微信小程序的执行文件当中,所以我们把它放在static下面新建一个lib。来配置安全通讯域名:在 "设置"->"开发管理" 中设置 request 合法域名,登录。首先需要在高德地图上面申请个人开发者,这个只需要使用支付宝认证一下很简单的啦~如果说我们只是微信小程序使用高德地图的话我们就不需要 设置APP模块设置。在uniapp当中设置微信小程序的配置。那我们设置的小程序的key如何使用呢?然后就是根据新手教程 设置我的应用。

2025-06-09 12:17:27 2518 1

原创 日志的具体使用

本文介绍了Java项目中日志配置的最佳实践。开发环境推荐使用application.yml配置日志路径(如D:/logs/app.log),生产环境建议通过logback-spring.xml设置规范路径(如/var/log/app.log)并启用滚动策略(保留30天)。重点说明:1)必须手动调用logger.error记录异常(需包含异常对象e);2)推荐使用@Slf4j简化日志对象创建;3)合理设置日志级别(开发DEBUG/生产INFO);4)异常日志必须包含完整堆栈信息而非仅e.getMessage(

2025-06-09 12:16:45 1221

原创 如何在项目当中使用redis进行范围搜索

Redis GEO 本质上是在 Redis 中保存地理位置数据(使用经纬度 + key + member 的形式),然后通过。这是一个 Redis 的 Key,表示你所有帖子位置都保存在这个 key 下的 GEO 类型中。这是搜索的“附加参数”,你可以在里面设置返回什么信息、是否排序、返回几个等。→ Redis GEO 中的 member(这里是帖子 ID),“我现在的位置是 (经度, 纬度),请查我附近的 member”这是 Redis 中用于保存 GEO 数据的键名(key)

2025-05-23 08:39:20 1127

原创 SpringAI——如何使用java来接入大模型

Spring AI是Spring生态中的新成员,专门为AI服务接入而设计,提供统一的API接口和自动配置能力,极大地简化了开发人员与不同大模型API集成的过程。add存储指定会话ID的聊天消息列表到内存或持久存储中。get根据会话ID和数量lastN,获取最近的N条聊天消息。clear清空指定会话ID对应的消息列表。

2025-05-23 08:38:43 1750 1

原创 java之file和IO流

1. createNewFile 创建一个新的空的文件夹如果当前路径表示的文件是不存在的,则创建成功,方法返回true,如果当前路径表示的文件是存在的,则创建失败,方法返回false。如果父级路径是不存在的,那么方法会有异常IOExceptioncreateNewFile 方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件2. mkdir 创建一个单级文件夹windows当中路径是唯一的,如果当前路径已经存在,则创建失败,返回false。

2025-04-12 18:09:16 1107 1

原创 java之多线程

注意:同步方法锁的对象是不可以指定的。在java中,非静态的锁对象是this。这样线程可以知道锁住和这个锁对象关联起来的线程,也可以唤醒与这个锁对象关联起来的线程。注意在synchronized小括号里面的一般会是该类的字节码文件(类.class)必须保证其唯一性。守护线程在后台运行,用于服务用户线程(非守护线程)。方法必须在同步代码块或同步方法中调用,而这些同步需要一个明确的锁对象来协调线程间的通信。同步方法是锁住方法里面所有的代码,其实就是把同步代码块里面的代码提取成同步方法。将线程设置为守护线程。

2025-04-12 18:08:15 330

原创 后端开发中的文件上传的实现

注册为 Bean,其他任何需要用到文件上传的地方都可以通过自动注入(在后端创建一个配置类用于初始化阿里云 OSS 客户端实例。封装一个工具类来处理文件上传的核心逻辑。编写 Controller 层接口,供前端调用。会自动从 Spring 容器中注入,因为。工具类,并将配置文件中的属性通过。使用配置类方式来初始化。

2025-03-28 12:01:30 503

原创 学习中学习的小tips(主要是学习苍穹外卖的一些学习)

登录成功后,我们可以将生成的 JWT 令牌存储在另一个实体类中,并将其返回给前端。这样,在前端请求其他需要认证的接口时,可以通过在请求头中携带 JWT 令牌,拦截器就能够通过。PasswordConstant.DEFAULT_PASSWORD.是默认密码123456。首先从前单一的pojo类细分成了pojo,dto和vo,登录成功后,可以使用jwtutil生成jwt令牌。方法来对该令牌进行校验。3. 注册的时候,需要对密码进行加密。

2025-03-28 11:59:48 859

原创 使用 Spring Security的一些常用功能

Spring Security 中常用的一些功能和策略,具体使用哪些功能取决于应用的需求。例如,基本的身份认证、权限控制、会话管理、跨域控制等是大多数 Web 应用中常见的配置。对于需要更高级安全控制的应用(如微服务架构中的 OAuth2、JWT 等),也可以进行相应的配置。

2025-03-22 13:31:26 580

原创 使用若依AI生成springBoot的前后端分离版本

点击生成按钮,若依AI将为你自动生成Controller、Service、Mapper等后端代码,并为你生成对应的Vue页面和接口。登录到若依管理后台后,进入系统管理模块,创建菜单目录。你可以为每个模块和子模块配置菜单,并为每个菜单设置访问权限。在后台管理系统中,进入“代码生成”模块,导入你数据库中的表。在数据库中执行若依提供的SQL脚本来创建所需的表结构。8. 将生成的代码放在新建的子模块当中,前后端分离,根据需求更改前端代码即可。默认是从官网上面下载,下载的非常非常慢,可以使用以下命令来使用镜像下载。

2025-03-22 13:02:02 1137

原创 SpringSecurity——前后端分离登录认证

在 Spring Security 中,退出操作(logout)的设计逻辑与登录有所不同。登录过程涉及用户凭证验证、状态检查和密码匹配等环节,这些都有可能失败,所以需要提供失败处理器(如登录失败处理器)。前后端分离:Nginx 【Vue】 <----jwt----> Tomcat 【 (controller、sucurity) 】三个里面有任何一个不同,都是跨域,跨域是浏览器不允许的,浏览器是为了安全,不允许你跨域访问。从数据库中加载用户信息,返回一个包含用户状态和权限信息的。service实现类。

2025-03-21 19:48:13 1223 1

原创 SpringSecurity——前后端分离登录状态如何保持

JWT 校验是在 Spring Security 的过滤器链中进行的。我们实现一个继承的类后端接口接收到前端的请求时,首先都会被jwt的验证过滤器拦截,拦截里面会验证jwt是否合法(是否是空、有没有篡改,和redis是否相等),验证未通过就直接给前端返回一个R对象的json,验证通过了,把spring security上下文中设置用户认证信息。

2025-03-21 19:20:01 946

原创 SpringSecurity——基于角色权限控制和资源权限控制

直接在resources/static/error下面配置页面即可Spring Boot 内置了一个默认的错误处理机制。当应用返回错误状态码(例如 403)时,Spring Boot 会自动查找与该状态码匹配的错误页面。如果在下存在对应名称(如403.html)的页面,系统就会直接返回该静态页面,而无需额外配置或编写代码。这种设计符合 Spring Boot “约定优于配置” 的理念,简化了错误处理的配置过程。

2025-03-19 21:49:03 1344 1

原创 SpringSecurity——如何获取当前登录用户的信息

Spring Security 将当前认证信息统一保存在中,通过实现线程级别的绑定。你可以直接通过方法参数(如Principal或更具体的认证类)来获取,也可以在任意位置通过获取。这些方式本质上都是获取同一个对象,只是使用方式不同。如果在项目中经常需要获取当前用户信息,可以封装一个工具类,方便调用和后续扩展。在你的用户实体类中,可以添加额外的属性,例如真实姓名、邮箱、电话等等。

2025-03-19 21:27:53 2263

原创 SpringSecurity——如何使用自定义的登录页面

这是Spring Security配置中的一部分,用来指定Spring Security应该拦截和处理哪个URL的登录请求。如果你启用了Spring Security的CSRF保护,并且没有在表单中包含这个令牌,Spring Security会拒绝该请求并抛出异常。1. 在Spring Security启用CSRF保护时,表单中需要添加一个隐藏的输入字段,用于传递CSRF令牌。用于指定自定义的登录页面的路径。,这个页面将包含一个表单用于输入用户名和密码,并提交到Spring Security的认证端点。

2025-03-18 15:07:39 891

原创 SpringSecurity——如何使用数据库进行登录操作流程

项目中一旦添加了spring security的jar包依赖,那么所有的controller接口路径访问时都会被spring security拦截,它会检查你是否登录,如果未登录,就会跳转到它的一个默认登录页,如果登录了,那么可以直接访问controller的路径。1. 选择基础依赖(最基础需要包括 springWeb,springSecurity,MysqlDriver,Mybatis Framework,LomBok)Spring Security 使用数据库进行登录操作流程。

2025-03-18 14:45:42 357

原创 SpringSecurity——如何实现验证码登录页面

验证码生成与前端显示前端页面通过请求验证码图片。生成验证码(这里使用带扭曲干扰的验证码),并将验证码字符串存入 Session,再将验证码图片通过 IO 流输出给前端。请求访问控制Spring Security 配置中允许/toLogin(登录页面)和(验证码图片接口)未登录访问。其他请求都需要经过认证后才能访问。登录请求及验证码校验当用户提交登录表单(提交至/login)时,自定义的会首先介入:从请求中获取用户输入的验证码,并从 Session 中获取正确验证码。

2025-03-17 20:45:38 2090

原创 Hutool工具包生成验证码的接口

快捷创建:通过快速生成多种样式的验证码。核心接口:所有验证码实现类都遵循ICaptcha接口,统一了方法,如getCode()getImage()和write()。灵活配置:支持传入自定义验证码生成器以及设置多种干扰效果(如圆圈、线条、扭曲),方便开发者根据业务需求灵活配置验证码内容和样式。

2025-03-17 20:36:24 976

原创 ElasticSearch第二弹——DSL查询7

Test// 准备Request// 准备请求参数// 发送请求// 解析结果// 获取搜索结果的所有匹配条目// 获取总的匹配条数// 获取每一条搜索结果// 获取当前搜索结果的 JSON 字符串// 将 JSON 字符串转化为 Java Bean(假设 ItemDoc 是你的文档类)// 打印出文档信息(包含高亮的名称)

2025-02-27 16:56:35 901

原创 Elasticsearch

指定每个字段的数据类型(如。

2025-02-27 16:55:39 1277

原创 Redis——用户签到BitMap,UV统计

如果是使用表来储存,需要耗费大量的内存,数据库压力山大因此我们换一种方式来存储,一个月最多有31天,因此,如果某一天签到了,那么对应的位为1,没有则为0。这种方式只需要31bit,也就是8字节,大大节省了空间。

2025-02-24 17:34:52 689 1

原创 GEO数据结构

是一种将经纬度编码为字符串的算法,用于地理位置的高效存储和查询。是一种将经纬度编码为字符串的算法,用于地理位置的高效存储和查询。:返回一个字符串表示的 GeoHash 值。:向指定的 key 中添加地理空间信息。:返回两点之间的距离,单位为指定的单位。:返回指定成员的 GeoHash 值。:返回指定成员的 GeoHash 值。根据当前页计算数据截取的起始位置(的结果存储到新的 key 中。:返回对应的经纬度数组,例如。:计算两个位置之间的距离。:在指定的范围内搜索成员。:返回指定成员的经纬度。

2025-02-24 15:42:08 537

原创 springmvc三个域对象

Request作用域:适用于单次请求中的数据传递,生命周期随请求的结束而结束。Session作用域:适用于一个用户会话期间需要保存的数据,例如用户状态,生命周期随会话结束而结束。Application作用域:适用于整个应用程序范围内共享的数据,例如配置信息,生命周期随服务器关闭而结束。请求域:当你点击“搜索”按钮后,搜索结果页面展示给你,这些数据只在这次请求中有效。会话域:当你登录后,或者在不同页面中来回切换时,购物车中的商品信息保持不变,直到你退出登录或者会话超时。

2025-01-14 09:34:04 1046

原创 Feed流(基于黑马程序员关注和推送模块)

在 Redis 的 Sorted Set 中存储 Feed 流数据时,为了解决时间戳重复导致的分页重复读取问题,可以通过动态调整分页参数 offset 的方式,确保正确跳过重复数据。具体做法是记录上一页的最小时间戳(lastMinTime)和重复数量(offset),在下一页查询时判断当前页的最小时间戳是否等于上一页的最小时间戳。如果相等,则累加 offset 跳过重复数据;如果不相等,则重置 offset 为当前页的最小时间戳的重复数量。这种方式可以高效实现滚动分页,保证数据查询的完整性和准确性。

2025-01-14 09:32:05 1211

原创 Redis实战——实现一人一赞排行榜,关注和共同关注的功能

在黑马点评项目中,我们需要实现点赞功能。这项功能既涉及记录用户点赞行为,又需要支持点赞数据的统计与展示。为了实现这一功能,我们选择了高效的缓存数据库——Redis。在实现点赞功能时,我们需要频繁查询某个用户是否已经点赞。若直接使用关系型数据库(如 MySQL),将对数据库造成巨大的压力,尤其是在高并发场景下。为了解决这一问题,我们选择了 Redis。它具有以下优势:在点赞业务中,我们需要同时记录:基于这一需求,使用 Redis 的集合(Set) 数据结构是最佳选择。Set 的特点如下:点赞排行榜的实现

2025-01-13 18:41:37 655

原创 MQ+Redis 实现异步秒杀 (黑马点评项目为例)

监听队列中的订单消息,并执行具体的订单创建逻辑。,实现消息的 JSON 序列化和反序列化。依赖实现 RabbitMQ 的集成。

2025-01-13 12:55:19 654

原创 springmvc的获取请求数据

在使用 SpringMVC 开发 web 应用时,我们经常需要从用户的请求中获取数据。不管是表单提交、查询参数,还是路径上的数据,SpringMVC 都为我们提供了简单而强大的方式来获取这些数据。

2025-01-12 10:11:32 1280 1

原创 springCloud特色知识记录(基于黑马教程2024年)

是 Spring Cloud Gateway 中的一个核心过滤器,它负责将请求真正路由到目标服务,并处理响应的回传。简单来说,这是网关在处理请求时,实际完成路由和转发的核心组件。

2025-01-12 10:06:50 970

原创 RequestMapping详细总结

RequestMapping是Spring MVC中一个非常强大且灵活的注解,通过它我们可以轻松地将HTTP请求映射到相应的处理方法上。它支持多种方式的URL匹配、请求方式过滤、请求参数过滤以及请求头的控制,从而让我们的控制器代码更加简洁、规范。如果能灵活掌握@RequestMapping的各种属性,Spring MVC开发将变得更加轻松和高效。希望这篇文章能够帮助你更好地理解和使用@RequestMapping。如果你有任何疑问或想要了解更多细节,欢迎在评论区留言!

2025-01-11 18:16:14 1608

原创 RabbitMQ高级篇

是指在分布式系统中,某一操作无论被执行一次还是多次,其产生的效果是相同的。在使用 RabbitMQ 或其他消息队列时,消费者可能会因重试、重复投递等原因处理相同的消息多次。的缺点和高消息积压场景下的性能问题。它将消息尽可能存储在磁盘上,而不是内存中,从而减少内存占用和避免内存不足导致的队列阻塞。在 RabbitMQ 的消费者确认机制中,消费者需要通知 RabbitMQ 消息是否被成功处理。是为了解决上述问题的一种优化方案,其目标是最大限度地减少内存占用,优先使用磁盘存储消息,从而解决持久化策略的缺点。

2025-01-11 09:17:44 1127

原创 苍穹外卖的微信支付和接单和催单提醒

其实就是生成空的JsonObject,不然按照老师来的话,会报错,空指针错误。在这里直接使用WebSocketServer此昂客户端(商家)传递接单消息。

2025-01-10 22:07:51 264

原创 RabbitMQ基础(简单易懂)

它基于AMQP协议(Advanced Message Queuing Protocol),一种为应用构建消息队列的标准协议。过程中,它提供了一些重要模块:为消息发送的Producer(生产者),分发消息的Exchange(交换器),写入消息的Queue(队列),和读取消息的Consumer(消费者)。MQ 的核心概念1. 异步处理问题:系统需要执行一些耗时操作(如发送邮件、生成报告),如果这些操作在主线程执行,会影响用户体验或导致系统响应变慢。MQ 的解决方式。

2025-01-10 17:04:33 2029

springmvc+Mybatis+连接数据库+spring6的web开发总结的步骤(示例是用户管理系统)

用户管理系统的框架

2024-10-24

CCPC Online 2024China, September, 8, 2024

CCPC Online 2024China, September, 8, 2024

2024-09-10

迪杰斯特拉和弗洛伊德算法求最短路径

迪杰斯特拉和弗洛伊德算法求最短路径

2024-09-03

区间dp-基本知识以及例题

区间dp-基本知识以及例题

2024-09-02

空空如也

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

TA关注的人

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