- 博客(410)
- 收藏
- 关注
原创 从配置文件中加载数据的方法
类,用于管理不同设备类型的 API 密钥(ApiKey)和令牌(Token)。这些配置项通过 Spring 的。注解从配置文件中加载,并存储在静态变量中。
2025-03-12 10:47:48
193
转载 java: Compilation failed: internal java compiler error 报错解决
解决方法:查看项目中配置的jdk版本,再查看。解决方法:调整分配的堆大小,最开始是700。
2025-03-10 17:57:01
176
原创 RabbitMQ 仲裁队列 -- 解决 RabbitMQ 集群数据不同步的问题
什么是 Raft?Raft 是⼀种⽤于管理和维护分布式系统⼀致性的协议,它是⼀种共识算法,旨在实现⾼可⽤性和数据的持久性. Raft 通过在节点间复制数据来保证分布式系统中的⼀致性,即使在节点故障的情况下也能保证数据不会丢失.在分布式系统中,为了消除单点提⾼系统可⽤性,通常会使⽤副本来进⾏容错,但这会带来另⼀个问题,即如何保证多个副本之间的⼀致性?
2025-01-23 09:28:50
1638
原创 RabbitMQ 在实际应用时要注意的问题
在应⽤程序中,幂等性就是指对⼀个系统进⾏重复调⽤(相同参数),不论请求多少次,这些请求对系统的影响都是相同的效果.⽐如数据库的 select 操作.不同时间两次查询的结果可能不同,但是这个操作是符合幂等性的.幂等性指的是对资源的影响,⽽不是返回结果.查询操作对数据资源本⾝不会产⽣影响,之所以结果不同,可能是因为两次查询之间有其他操作对资源进⾏了修改.⽐如 i++ 这个操作,就是⾮幂等性的.如果调⽤⽅没有控制好逻辑,⼀次流程重复调⽤好⼏次,结果 就会不同.
2025-01-21 17:05:07
1292
原创 RabbitMQ 高级特性
延迟队列是⼀个特殊的队列,消息发送之后,并不⽴即给消费者,⽽是等待特定的时间,才发送给消费者.延迟队列的应⽤场景有很多,⽐如:1.订单在⼗分钟内未⽀付⾃动取消2.⽤户注册成功后,3天后发调查问卷3.⽤户发起退款,24⼩时后商家未处理,则默认同意,⾃动退款但RabbitMQ本⾝并没直接实现延迟队列,通常有两种⽅法:1.TTL+死信队列组合的⽅式2.使⽤官⽅提供的延迟插件实现延迟功能⼆者对比:1.基于死信实现的延迟队列a.优点:1)灵活不需要额外的插件⽀持。
2025-01-20 16:05:15
1158
原创 序列化和反序列化 Json 字符串 @JSONField
JSONField 注解在 FastJSON 库中非常有用,它可以帮助开发者精确控制 JSON 序列化和反序列化的行为,确保 JSON 数据的一致性和正确性。通过指定键名、格式化日期、控制字段的序列化和反序列化等,可以灵活地处理复杂的 JSON 数据结构。
2025-01-15 16:51:22
566
原创 序列化和反序列化 Json 字符串 @JsonProperty
JsonProperty 注解在 Jackson 库中非常有用,它可以帮助开发者精确控制 JSON 序列化和反序列化的行为,确保 JSON 数据的一致性和正确性。通过指定键名、控制访问级别、设置必填项等,可以灵活地处理复杂的 JSON 数据结构。
2025-01-15 16:01:28
380
转载 mybatisplus+ mysql 数据库 id 自增值变大且 AUTO_INCREMENT 无效的问题
5.带着疑问,开始google查找问题,一开始怀疑是数据库本身的问题,是不是数据库id自增主键设置的有问题,查看数据发现id和插入时间一点关系都没有。7.既然mysql没有问题,那是不是mybaits的问题呢,带着疑问查了一下网上的资料,查到这篇文章,https://blog.youkuaiyun.com/razorluo/article/details/106238129 mybatisplus自增主键很大问题排错。2.查看数据库中的id字段,发现有负值也有正值,而且都是比较大的数;3,AUTO(数据库ID自增)
2025-01-07 09:17:23
112
原创 Quartz 任务调度学习笔记(包教包会,最细致的介绍)
Quartz是OpenSymphony开源组织在Job scheduling领域的一个开源项目,该项目于 2009 年被 Terracotta 收购,目前是 Terracotta 旗下的一个项目。它完全由java编写、可以与J2EE与J2SE应用程序相结合也可以 单独使用。Quartz可以用来创建运行十个、百个、乃至几万个Jobs这样复杂的程序。
2024-12-31 00:20:02
941
原创 Spring Boot 整合 RabbitMQ(在Spring项目中使用RabbitMQ)
对于 RabbitMQ 开发,Spring 也提供了⼀些便利. Spring 和 RabbitMQ 的官⽅⽂档对此均有介绍下⾯来看如何基于 SpringBoot 进⾏ RabbitMQ 的开发。
2024-12-26 10:29:30
1747
原创 RabbitMQ快速入门 - 生产者和消费者的简单实现
例如:如果有⼀个名为 "hello" 的队列,⽣产者可以直接发送消息到 "hello" 队列,⽽消费者可以从 "hello" 队列中接收消息,⽽不需要关⼼交换机的存在.这种模式⾮常适合简单的应⽤场景,其中⽣产者和消费者之间的通信是⼀对⼀的.当⼀个新的 RabbitMQ 节点启动时,它会预声明(declare)⼏个内置的交换机,内置交换机名称是空字符串("").⽣产者发送的消息会根据队列名称直接路由到对应的队列.运⾏之后,队列中就已经有了 hello 这个队列的信息。运⾏程序,我们刚才发送的消息,就收到了。
2024-12-13 11:19:22
1098
原创 Mybatis Plus 多表联查+分页查询
在UserMapper//...//...TIP : 可以看到我们定义的关联分页查询和 Myatis Plus 内部提供的分页方法相差不大,仔细看入参,我们复用了 Mybatis Plus 内部提供的分页类IPage,以及(用于组装where条件)。然后在//...//...@Autowired@Test// 查询第一页,每页显示 10 条// 注意:一定要手动关闭 SQL 优化,不然查询总数的时候只会查询主表。
2024-12-12 16:24:41
319
原创 ubuntu 如何放开端口
请注意,放开端口也意味着允许外部访问该端口,因此在放开端口之前,请确保你了解安全风险,并只放开需要的端口。另外,如果你的系统上运行了其他防火墙工具(如iptables),你需要根据具体工具的使用方式进行相应配置。ufw 是 Ubuntu 上的一个简化的防火墙配置工具,可以轻松管理端口和防火墙规则。sudo ufw allow 22/tcp #允许所有的外部IP访问本机的22/tcp端口(ssh)sudo ufw allow smtp #允许所有的外部IP访问本机的25/tcp端口(smtp)
2024-12-10 16:09:21
3237
原创 RabbitMQ 工作流程和 web 界面介绍
界⾯上的导航栏共分 6 部分,这 6 部分分别是什么意思呢,我们先看看 RabbitMQ 的⼯作流程RabbitMQ是⼀个消息中间件,也是⼀个⽣产者消费者模型.它负责接收,存储并转发消息.消息传递的过程类似邮局.当你要发送⼀个邮件时,你把你的邮件放到邮局,邮局接收邮件,并通过邮递员送到收件⼈的⼿上.按照这个逻辑, Producer 就类似邮件发件⼈. Consumer 就是收件⼈, RabbitMQ 就类似于邮局。
2024-12-09 17:52:11
1300
原创 ServletOutputStream 用于发送二进制数据到客户端的输出流(文件下载)
ServletOutputStream 是 Java Servlet API 的一部分,它是一个用于发送二进制数据到客户端的输出流。当你在 Servlet 中处理 HTTP 请求时,允许你将响应体内容(如文件、图片或任何二进制数据)直接写入 HTTP 响应中。以下是。
2024-12-04 17:52:32
453
原创 springboot利用easypoi实现简单导出Excel
今天玩了一下springboot利用easypoi实现excel的导出,以前没玩过导入导出,只不过听说过看别人用过,怎么说呢,想玩就玩一下吧,毕竟结合自己业务场景需要才会考虑是否使用。先简单介绍一下easypoi。
2024-12-02 15:56:55
1315
原创 @Pattern (用于校验字符串是否符合特定正则表达式)
Pattern是一个用于校验字符串是否符合特定正则表达式的注解,它在 Java 中常用于验证输入数据的格式。以下是@Pattern。
2024-11-27 15:04:59
826
原创 @JsonFormat 详解(在序列化和反序列化 JSON 数据时控制日期和时间的格式)
是 Jackson 库提供的注解,用于在序列化和反序列化 JSON 数据时控制日期和时间的格式。
2024-11-27 11:14:49
828
原创 @DateTimeFormat 详解(格式化和解析日期时间字段)
DateTimeFormat 是 Spring 框架提供的注解,用于格式化和解析日期时间字段。
2024-11-27 11:07:47
1249
转载 Spring Boot 中的 @DateTimeFormat 和 @JsonFormat 的用法及作用
在开发 Spring Boot 应用时,处理日期和时间数据是一个常见的需求。Spring Boot 提供了两个注解和来帮助我们处理这些问题。这两个注解分别用于将日期字符串解析为日期对象以及将日期对象格式化为字符串。本文将详细介绍这两个注解的用法及作用,并通过实例代码进行说明。
2024-11-27 10:24:26
355
原创 mybatis-plus 如何实现多表查询
MyBatis-Plus Join是一个扩展库,它提供了多表联查的能力。注解来编写SQL查询语句,实现多表查询。另一种方法是在Mapper的XML配置文件中定义多表查询的SQL语句。这些方法提供了灵活的方式来实现多表查询,你可以根据项目的具体需求选择合适的实现方式。你可以在 Mapper 接口中使用。来构建多表联查的条件。
2024-11-26 15:20:51
466
原创 mybatis-plus 实现分页查询步骤
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了代码生成器、条件构造器、分页插件等多种功能,其中分页查询是一个常用的功能。
2024-11-26 15:15:29
1546
1
原创 Java后端如何进行文件上传和下载 —— 本地版
本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。
2024-11-25 11:16:51
2182
1
原创 idea怎么打开两个窗口,运行两个项目
将这里的设置改为:New window(idea 的版本不同位置可能不同,但肯定在这个页面),点击 Apply 应用。打开新项目要在 File -> Open 找到项目文件打开(我之前直接去桌面点 idea 发现开不了第二个窗口)今天在开发项目的时候,前端希望运行一下以前的项目,于是就需要开两个 idea 窗口,运行两个项目。
2024-11-22 16:13:42
4074
原创 mybatis-plus 怎么定义实体类,使程序运行时自动创建表
确保你的项目中已经包含了 MyBatis-Plus 的依赖,并且正确配置了数据库连接信息。当应用程序启动时,MyBatis-Plus 会根据配置的策略自动创建或更新数据库。:创建一个 Java 类来表示数据库中的表,使用 MyBatis-Plus 提供的注解来定义实体类的属性与数据库表和字段的映射关系。:指定实体类对应的数据库表名。如果实体类名与表名一致,可以省略此注解。:在配置文件中设置 MyBatis-Plus 的自动建表策略。:指定表的主键列,并设置主键的生成策略。:指定非主键字段的映射信息。
2024-11-21 15:05:05
1100
1
原创 错误记录 - 数据库中记录的时间是14:20但返回给前端就变成了9:20
这通常与日期时间格式的处理有关。在进行网络请求或者数据交互时,时间戳和日期格式的转换是一个常见的问题点。Java开发中 Date 类型存储的是时间戳。所以时区没有设置好,就会出现问题。
2024-11-20 16:42:07
245
原创 MyBatis-Plus 中条件构造器 QueryWrapper 一些常用的比较运算符及其对应的方法
这通常与日期时间格式的处理有关。在进行网络请求或者数据交互时,时间戳和日期格式的转换是一个常见的问题点。Java开发中 Date 类型存储的是时间戳。所以时区没有设置好,就会出现问题。
2024-11-20 16:40:18
858
原创 Java BeanUtils 使用详解
在开始之前,让我们先了解一下什么是JavaBean。JavaBean是一种特殊的Java类,它遵循一组命名规范和编程约定,通常用于存储数据。具有无参数的公共构造函数。属性由公共的setter和getter方法管理。可序列化,可以用于持久化和网络传输。遵循一些命名规范,如属性的getter方法应该以"get"或"is"开头,setter方法以"set"开头。return age;在上面的示例中,Person。
2024-11-19 11:19:35
987
原创 通过客户端传来的HTTP请求(HttpServletRequest)获取客户端的IP地址
【代码】通过客户端传来的HTTP请求(HttpServletRequest)获取客户端的IP地址。
2024-11-12 09:34:34
236
原创 @Value 注解(可以将配置文件中的值注入到 Spring 管理的Bean的字段中)
这种方式使得配置值可以被集中管理,并且可以在不同的环境(如开发、测试和生产环境)中使用不同的配置值,而无需修改代码。注解是Spring框架中用于注入配置值的一个注解。它的作用是将配置文件中的值注入到Spring管理的Bean的字段中。注解被用来从外部配置源(可能是application.properties或application.yml文件)中注入。application.yml 配置文件。
2024-11-11 17:43:21
357
原创 BufferedInputStream 和 FileInputStream 的区别
BufferedInputStream和 FileInputStream 都是Java中用于读取数据的类,它们都继承自类。
2024-11-08 11:08:24
296
原创 ProtoBuf 快速上手
消息(message):要定义的结构化对象,我们可以给这个结构化对象中定义其对应的属性内容。这⾥再提⼀下为什么要定义消息?在⽹络传输中,我们需要为传输双⽅定制协议。定制协议说⽩了就是定义结构体或者结构化数据, ⽐如,tcp,udp 报⽂就是结构化的。再⽐如将数据持久化存储到数据库时,会将⼀系列元数据统⼀⽤对象组织起来,再进⾏存储。所以 ProtoBuf 就是以 message 的⽅式来⽀持我们定制协议字段,后期帮助我们形成类和⽅法来使⽤。message 消息类型名{
2024-11-06 14:52:17
1151
原创 RestTemplate 常用方法(提供了多种方法来发送 HTTP 请求)
是 Spring 框架中用于同步客户端 HTTP 请求的一个类,它提供了多种方法来发送 HTTP 请求。以下是一些常用的该方法用于发送 POST 请求,并期望返回一个对象。以下是一个使用:创建了的一个实例,用于执行 HTTP 请求。:创建了一个HttpEntity对象,它包含了要发送的数据(在这个例子中是一个Foo对象,其构造函数接收一个字符串参数 "bar")和 HTTP 头部信息(在这个例子中头部信息是空的,因为HttpEntity的构造函数没有接收任何头部信息参数)。:使用方法发送 POST 请求到。
2024-11-01 10:34:19
1586
原创 微信小程序调起支付获取到 prepay_id 后,由后端签名处理数据交给前端的代码
【代码】微信小程序调起支付获取到 prepay_id 后,由后端签名处理数据交给前端的代码。
2024-10-30 17:56:05
408
Quartz 在项目中的使用实例,可以动态增删改查定时任务,包括 Quartz 的优秀配置
2024-12-30
Spring Boot 整合 RabbitMQ(在Spring项目中使用RabbitMQ)
2024-12-26
软考高级系统架构设计师知识点大全
2024-03-25
编程语言 Java 实现的在线 OJ 系统
2024-03-01
通过 Spring 技术实现的博客系统
2024-02-12
中级软件设计师相关备考资料
2024-01-04
博客系统(java,MySQL,HTML)
2023-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人