- 博客(41)
- 收藏
- 关注
原创 Could not write JSON: Java 8 date/time type `java.time.LocalDateTime` not supported by default解决方案
当使用 RedisTemplate 将包含 LocalDateTime 类型字段的对象存储到 Redis 中时,可能会遇到如下问题和解决方案
2024-06-16 00:45:26 1855
原创 使用Spring Boot实现Redis多数据库缓存
在我的系统中,为了优化用户行为数据的存储与访问效率,我引入了Redis缓存,并将数据分布在不同的Redis数据库中。通过这种方式,可以减少单一数据库的负载,提高系统的整体性能。
2024-06-09 13:44:16 689 2
原创 503 SERVICE_UNAVAILABLE “Unable to find instance for ***“的问题。
在完成网关微服务的配置后,网关能够被Nacos发现并正常运行,但是无法将请求转发到其他微服务。使用Postman进行请求时,返回503错误,而后端控制台并没有显示任何报错信息。
2024-05-16 13:29:10 1557
原创 springboot3.0+继续使用springboot2.0配置会显示 `无法自动装配,找不到对应的Bean`解决方法
在springboot3.0+继续使用springboot2.0配置会显示 `无法自动装配,找不到对应的Bean`
2024-05-16 12:30:43 866
原创 使用 OpenFeign 实现服务间通信
利用Nacos实现了服务的治理,利用RestTemplate实现了服务的远程调用。但是远程调用的代码太复杂:这种调用方式,与原本的本地方法调用差异太大,编程时的体验也不统一,一会儿远程调用,一会儿本地调用。因此,必须想办法改变远程调用的开发模式,让远程调用像本地方法调用一样简单。而这就要用到OpenFeign组件了。
2024-04-27 17:53:10 729 1
原创 Nacos服务注册和发现
在大型微服务项目中,服务提供者的数量会非常多,为了管理这些服务就引入了注册中心的概念。注册中心、服务提供者、服务消费者三者间关系如下:当服务提供者的实例宕机或者启动新实例时,调用者如何得知呢?
2024-04-27 17:38:43 2098
原创 Kafka Streams实时流式计算
Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature。它是提供了对存储于Kafka内的数据进行流式处理和分析的功能。Kafka Stream提供了一个非常简单而轻量的Library,它可以非常方便地嵌入任意Java应用中,也可以任意方式打包和部署除了Kafka外,无任何外部依赖充分利用Kafka分区机制实现水平扩展和顺序性保证通过可容错的state store实现高效的状态操作(如windowed join和aggregation)
2024-04-23 20:59:34 1137
原创 定时任务框架xxl-job使用配置笔记
xxl-job 是一个分布式任务调度平台,主要用于解决企业级分布式任务调度问题。它提供了分布式任务调度、任务执行器、任务监控等功能,可以帮助企业实现任务调度的自动化和可靠性。总的来说,xxl-job 是一个功能强大、易于使用的分布式任务调度平台,可以帮助企业实现任务调度的自动化和可靠性,提高任务执行的效率和可管理性。源码地址:https://gitee.com/xuxueli0323/xxl-job文档地址:https://www.xuxueli.com/xxl-job/
2024-04-21 17:41:15 3584
原创 MongoDB安装及集成
MongoDB是一个开源的、面向文档的 NoSQL 数据库,它采用了 JSON 风格的文档来存储数据,而不是传统的表格形式。MongoDB在数据存储方面具有灵活性和可扩展性,使得它成为了当今流行的数据库之一。:MongoDB 使用类似 JSON 的 BSON 格式来存储数据,每个文档可以包含不同的字段,这种灵活性使得数据模型更易于设计和修改。:MongoDB支持水平扩展,可以通过添加更多的节点来扩展存储容量和处理能力,从而满足不断增长的数据需求。
2024-04-19 21:11:21 724
原创 ElasticSearch搭建配置
因为在创建elasticsearch容器的时候,映射了目录,所以可以在宿主机上进行配置ik中文分词器。在去选择ik分词器的时候,需要与elasticsearch的版本好对应上。上传到服务器上,放到对应目录(plugins)解压。
2024-04-18 22:29:44 404
原创 kafka安装配置及使用
Kafka 是一个分布式流处理平台和消息队列系统,最初由 LinkedIn 公司开发并开源。它设计用于htt处理大规模的实时数据流,并具有高可扩展性、高吞吐量和持久性等特性。以下是 Kafka 的一些主要特点和用途:分布式架构:Kafka 是一个分布式系统,可以运行在多个服务器上组成的集群中。这个集群可以被扩展到数百台服务器上,以处理大量的数据和客户端。发布-订阅模型:Kafka 使用发布-订阅模型来处理消息。消息生产者将消息发布到一个或多个主题(Topics)中,而消息消费者则通过订阅这些主题来接收消息。
2024-04-17 22:53:38 1505
原创 利用Tess4J实现图片文字识别
光学字符识别(OCR)技术允许计算机通过扫描仪、摄像头等设备来识别并转换印刷或手写文本的图像数据为可编辑的文本格式。Tess4J是一个优秀的Java库,提供了与Tesseract OCR引擎的集成,方便进行图片文字识别。
2024-04-13 22:49:03 573
原创 对象存储服务MinIO安装使用
MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。MinIO兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
2024-04-07 19:37:37 614
原创 Freemarker环境搭建&&快速入门
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
2024-04-06 23:40:20 1086
原创 Nginx配置使用笔记
官网下载压缩包https://nginx.org/解压完成后当前目录cmd输入nginx指令启动访问http://localhost:80确认启动成功。
2024-04-04 17:19:41 606
原创 Knife4j配置使用笔记
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!gitee地址:https://gitee.com/xiaoym/knife4j官方文档:https://doc.xiaominfo.com/效果演示:http://knife4j.xiaominfo.com/doc.html核心功能该UI增强包主要包括两大核心功能:文档说明 和 在线调试。
2024-04-02 17:40:07 544
原创 SpringCloud中网关实现笔记
SpringCloudGateway:基于Spring的WebFlux技术,完全支持响应式编程,吞吐能力更强Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,用于构建基于 Spring 框架的 API 网关服务。它基于 Spring 5,采用了异步非阻塞方式,极大地提高了性能。
2024-03-24 17:50:23 689
原创 微服务架构中的远程调用
微服务架构通常将系统拆分成多个独立的服务单元,每个服务单元都专注于实现特定的业务功能。当一个服务需要使用另一个服务提供的功能时,就可以通过远程调用来实现。
2024-03-17 01:57:39 632
原创 Docker Compose基本配置及使用笔记
Docker Compose 是一个用于定义和运行多个 Docker 容器应用程序的工具。它使用 YAML 文件来配置应用程序的服务,并通过简单的命令集管理这些服务的生命周期。
2024-03-15 17:15:17 459
原创 MybatisPlus安装即使用快速上手
代码如下:Mapper要继承 BaseMapper,需要写上对应pojo的泛型,不再需要编写查询语句和方法@Mapper简化CRUD操作:提供了通用的Mapper接口,通过继承该接口,可以实现基础的增删改查操作,无需手动编写SQL语句。Lambda查询:引入Lambda表达式和条件构造器,使得查询条件的拼接更加直观、简洁,提高代码的可读性。自动填充:支持在实体类中定义字段的填充策略,例如创建时间、更新时间等,在插入和更新时自动填充相应的字段。
2024-03-11 19:23:33 917
原创 Pinia持久化插件-persist安装及使用
Pinia持久化插件-persistPinia默认是内存存储,当刷新浏览器的时候会丢失数据Persist插件可以将pinia中的数据持久化的存储。
2024-03-04 00:44:03 3272
原创 Axios请求拦截器
Axios 的请求拦截器用于在发送请求前对请求进行一些预处理或修改。在每次使用 Axios 发送请求之前,检查是否有有效的 token,并将它添加到请求头中,以便后端进行身份验证。
2024-03-04 00:16:59 441
原创 前端Pinia状态管理库存储JWT令牌信息
Pinia 的一些关键特性:基于 Composition API: Pinia 利用了 Vue 3 的 Composition API,提供了更灵活和强大的状态管理方式。可以使用 ref、reactive 等 Composition API 提供的功能来定义和操作状态。零依赖: Pinia 本身几乎没有依赖,因此它是一个轻量级的库。这使得它成为一个在 Vue 3 项目中使用的简单而灵活的状态管理解决方案。模块化: Pinia 支持将状态拆分为模块,每个模块都有自己的状态、操作和 getter。
2024-03-03 23:41:13 551
原创 VUE项目环境准备笔记
在项目文件夹下打开cmd,输入以下指令创建vue项目(需要在有网环境下并下载配置好nodejs)1.1安装加载完毕后可以在项目node_modules目录下检查element依赖是否导入成功。2.1安装加载完毕后可以在项目node_modules目录下检查axios 依赖是否导入成功。3.1安装加载完毕后可以在项目node_modules目录下检查sass 依赖是否导入成功。√ 是否要引入一款端到端(End to End)测试工具?√ 是否引入 ESLint 用于代码质量检测?√ 请输入项目名称: …
2024-03-02 17:46:57 1289 1
原创 将令牌信息备份到Redis中
分布式环境下的共享状态: 在微服务架构中,用户的请求可能涉及多个服务,而这些服务需要验证用户的令牌。将令牌信息存储在分布式缓存中,如Redis,可以实现跨服务的令牌验证,避免了各服务之间的状态同步问题。减轻认证服务的压力: 在一些系统中,认证服务负责颁发令牌和验证令牌的工作。如果每次请求都需要到认证服务验证令牌,可能会导致认证服务成为系统的瓶颈。将令牌信息缓存到Redis中,可以降低认证服务的负担,提高系统的整体性能。
2024-02-28 22:17:11 435
原创 开启分页查询 PageHelper
在实际开发中,将数据库操作直接写在注解里面虽然方便,但也存在一些问题。这种写法通常适用于简单的查询和更新操作,但在涉及到复杂业务逻辑、事务管理等场景时,更推荐使用 XML 配置文件或者 MyBatis 的注解结合 XML 文件的方式。
2024-02-27 23:29:32 228
原创 在 Spring Boot 中进行分组校验
Validated(User.BasicInfoGroup.class) 表示在添加用户时只校验 BasicInfoGroup 分组的规则,而 @Validated(User.UpdateInfoGroup.class) 表示在更新用户时只校验 UpdateInfoGroup 分组的规则。
2024-02-27 17:30:51 1198
原创 ThreadLocal的使用
环境版本号java 17ThreadLocal 是 Java 中的一个类,它提供了线程局部变量。线程局部变量是一种多线程编程的技术,允许创建的变量只被同一线程访问,其他线程无法访问这个变量。每个线程都有自己的局部变量副本,互不干扰。在 Java 中,可以使用 ThreadLocal 来存储线程私有的数据,这样每个线程都可以独立地管理自己的数据,而不会干扰其他线程。ThreadLocal 通常用于解决线程安全的问题,因为它避免了共享变量的竞争条件。
2024-02-25 23:27:57 368
原创 登录拦截器
这个拦截器的主要逻辑在 preHandle 方法中。它首先从请求头中获取名为 “Authorization” 的参数,这个参数通常用于携带 JWT 令牌。然后,它使用 JwtUtil 类的 parseToken 方法验证令牌的有效性。如果验证通过,preHandle 方法返回 true,表示放行该请求;如果验证失败,设置响应状态码为 401,并返回 false,表示拦截该请求。这个拦截器需要注册到 Spring MVC 中,可以通过配置类或者 XML 配置的方式将其加入拦截器。
2024-02-25 18:33:03 179
原创 JWT令牌使用及验证
JWT与Session的比较1、轻量且无状态: JWT是轻量级的,信息以JSON格式存储,使其易于在网络上传输。与传统的基于Session的认证相比,JWT不需要在服务器上保存会话状态,使其无状态。这意味着每个请求都包含了身份验证信息,服务器无需在存储和管理会话状态。2、跨域: JWT可以在跨域情况下安全地传递信息,因为它可以在请求头中传递,并且不受同源策略的限制。3、可扩展性: JWT的负载部分可以包含任意数量的声明,这使得它非常灵活,可以用于各种场景,如身份验证、授权和信息交换。
2024-02-24 18:48:20 856
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人