Java
文章平均质量分 79
Java学习专栏
Flobby529
这个作者很懒,什么都没留下…
展开
-
Spring Boot 集成 MinIO 实现文件上传
MinIO的搭建过程参考。登录MinIO控制台,新建一个 Bucket,修改 Bucket 权限为公开。原创 2024-06-21 14:43:39 · 622 阅读 · 0 评论 -
【Java】时间工具类 —— 格式化,个性化,时间操作
在平常的编程中,经常会遇到时间的各种类型转化,避免每次都使用第三方库或者上网搜索,决定整理一下写篇博客,也是从各处收集或者让AI写的方法,应该可以涵盖平时所有的场景了原创 2024-05-17 14:46:22 · 459 阅读 · 0 评论 -
【踩坑记录】SpringBoot 3 统一处理 dubbo 3 接口异常和错误
经过搜索之后发现,dubbo提供了异常处理的类ExceptionFilter(org.apache.dubbo.rpc.filter.ExceptionFilter),大概功能就是对指定的一些异常放行,然后其他异常统一包装成RuntimeException返回。最近在学习Dubbo的时候,按照之前的习惯定义了自定义异常和统一异常处理,但是在进行接口测试的时候,发现并不是自定义的异常处理,而是被当做系统异常进行了处理。在经过debug和源码的阅读之后发现,虽然异常进入了自己写的过滤器,但是最后还是会回到。原创 2023-12-04 14:04:34 · 1015 阅读 · 1 评论 -
【踩坑日记】关于时间戳的异常
在最近的一次作业中,保存时间的时候,由于懒得改前端组件时间,默认用了1970-01-01(只有年月日)上传数据,但是遇到了问题`Data truncation: Incorrect datetime value: '1970-01-01 08:00:00' for column 'create_time' at row 1`。但是改一下时间就可以正常提交,引发思考。时间戳不能存 0。原创 2023-11-16 23:01:53 · 477 阅读 · 0 评论 -
Java集合框架 ——— LinkedList 源码分析
LinkedList是一个基于双向链表实现的集合类,经常被拿来和ArrayList做比较。LinkedList 继承自,它决定了 LinkedList 只能支持按次序访问。此外 LinkedList 还实现了Deque接口,它具有双端队列的特性,支持从两端插入和删除元素,方便实现栈和队列等数据结构。因此 LinkedList 实现了很多队列的方法,在开发中也可以当做一个堆栈来使用。原创 2023-10-31 08:26:15 · 309 阅读 · 1 评论 -
Java集合框架 ——— LinkedList 基础使用
采用链表存储,所以在头尾插入或者删除元素不受元素位置的影响,时间复杂度为 O(1);如果是要在指定位置 i 插入和删除元素的话, 时间复杂度为 O(n) ,因为需要先移动到指定位置再插入和删除。我们在项目中一般是不会使用到 LinkedList 的,需要用到 LinkedList 的场景几乎都可以使用 ArrayList 来代替,并且,性能通常会更好。原创 2023-10-30 14:25:02 · 316 阅读 · 1 评论 -
Java集合框架 ——— HashMap 源码分析(二)
这两篇博客对 HashMap 的常用方法源码做了一些分析,扩容和插入方法的内容比较多,特别是插入操作,理解了插入之后,查找和删除的代码阅读起来也相对容易很多。原创 2023-10-26 08:05:54 · 160 阅读 · 0 评论 -
微服务网关整合 Knife4j
微服务架构下,每个服务都有自己的接口文档,但是需要访问不同的地址。如果想通过网关作为统一入口将所有文档聚合在一起,就需要使用 knife4j 提供的网关进行聚合组件。系统版本项目准备。原创 2023-10-19 14:00:43 · 416 阅读 · 0 评论 -
微服务实战项目 —— 知识分享应用(三)
我的兑换列表需要查询到 MidUserShare 中间表的数据后再查询 share 的具体信息,ShareService 创建方法。积分明细列表只需要简单的分页查询积分日志表,UserService 实现 userBonusLog 方法。注意:修改博客中两处主机地址,并且打开四个端口:9999,10909,10911,9876。用户中心不需要主动调用,写一个监听器,只要消息队列有了某个用户的积分,就会通知他去消费加分。重启服务,可以看到用户中心已经监听到,并且已经增加了积分,日志表也插入了日志。原创 2023-10-15 12:50:31 · 125 阅读 · 1 评论 -
微服务实战项目 —— 知识分享应用(二)
修改 http 登录接口测试代码,在 /login 登录接口响应成功后,将 token 存入 client.global 全局,然后就可以在 /client 接口请求中使用 {{ token }} 的形式使用它。JavaBean 方式比 yml 配置方式在多模块的微服务架构下实现更加便捷,只需要在公共模块写一个配置类就可以在全部模块(引入了公共模块的全部模块)实现时间的格式化。仿照 user 模块实现启动类。(此处需要用到用户中心的实体类 User,就先复制一份过来,结合前面的学习,思考最终的解决方案)原创 2023-10-13 10:11:08 · 223 阅读 · 0 评论 -
微服务实战项目 —— 知识分享应用(一)
share-common 模块新建 enums 子包,新建异常枚举类 BusinessExceptionEnum.java@GetterPHONE_NOT_EXIST("手机号不存在"),PASSWORD_ERROR("密码错误");share-common 模块新建 exception 子包,编写自定义异常类 BusinessException.java@Setter在全局统一异常处理类 ControllerExceptionHandler 中添加对自定义异常的处理/**原创 2023-10-08 15:34:21 · 184 阅读 · 1 评论 -
Java集合框架 ——— HashMap 基础使用
HashMap 是一种常用的数据结构,是一个非线程安全的集合,主要用来存放键值对。在 JDK1.8 之前 HashMap 由数组+链表 实现,链表主要用于解决哈希冲突;在 JDK1.8 之后,JDK 选择了新的哈希冲突解决方式,当链表长度大于一定阈值,HashMap 会将链表转化为红黑树,以此提高 HashMap 的效率。原创 2023-10-01 17:29:55 · 104 阅读 · 0 评论 -
Java集合框架 ——— ArrayList 源码分析
本文以 JDK1.8为例,分析ArrayList的源码。扩容机制,overflow-conscious code,int 溢出原创 2023-09-26 18:25:00 · 119 阅读 · 0 评论 -
Java 集合框架 ——— ArrayList 基础使用
数组的长度是固定的,无法适应数据变化的需求,因此Java提供了 ArrayList 集合类来解决这个问题。ArrayList 是大小可变的数组的实现,比数组使用起来更加灵活,它的容量能动态增长。ArrayList 对象不能存储基本类型,只能存储引用类型的数据。因此不能使用 int,double 等基本数据类型。原创 2023-09-25 19:46:12 · 123 阅读 · 1 评论 -
Java集合框架介绍
当我们需要存储一组类型相同的数据时,数组是最常用且最基本的容器之一。但是,使用数组存储对象存在一些不足之处,因为在实际开发中,存储的数据类型多种多样且数量不确定。这时,Java 集合就派上用场了。与数组相比,Java 集合提供了更灵活、更有效的方法来存储多个数据对象。Java 集合框架中的各种集合类和接口可以存储不同类型和数量的对象,同时还具有多样化的操作方式。相较于数组,Java 集合的优势在于它们的大小可变、支持泛型、具有内建算法等。总的来说,Java 集合提高了数据的存储和处理灵活性,可以更好地适应。原创 2023-09-19 17:41:06 · 38 阅读 · 0 评论