
Java 一统天下
文章平均质量分 81
将同种技术进行统一
sco5282
这个作者很懒,什么都没留下…
展开
-
【本地缓存】Java 中的 4 种本地缓存
是 Google 开发的 Guava 工具包中一套完善的JVM 本地缓存框架,底层实现的数据结构类似于,但是进行了更多的能力拓展,包括:缓存过期时间设置、缓存容量设置、多种淘汰策略、缓存监控等。是一个支持高并发的线程安全的本地缓存。多线程情况下也可以安全的访问或者更新 Cache,这些都是借鉴了的结果支持最大容量限制支持两种过期删除策略(插入时间和读取时间)支持简单的统计功能基于 LRU 算法实现Caffeine 官网Caffeine 是基于Java 1.8 的高性能本地缓存库。原创 2024-10-06 14:35:37 · 6985 阅读 · 0 评论 -
【限流】4 种常见的限流实现方案
自定义一个限流用的注解,后面在需要限流的方法或接口上面只需添加该注解即可// 限制类型 String limitType();// 每秒 5 个请求 double limitCount() default 5d;// 限制类型 String resourceName();// 每秒 5 个 int limitCount() default 5;原创 2023-07-22 16:44:37 · 4153 阅读 · 0 评论 -
【限流】4 种常见的限流算法
在大多数的微服务架构在设计之初,比如在技术选型阶段,架构师会从一个全局的视角去规划技术栈的组合,比如结合当前产品的现状考虑是使用 dubbo?还是 springcloud?作为微服务治理的底层框架。甚至为了满足快速的上线、迭代和交付,直接以 springboot 为基座进行开发,后续再引入新的技术栈等…所以在谈论某个业务场景具体的技术解决方案时不可一概而论,而是需要结合产品和业务的现状综合评估,以限流来说,在下面的不同的技术架构下具体在选择的时候可能也不一样固定窗口算法滑动窗口算法令牌桶算法。原创 2023-07-20 11:07:32 · 2601 阅读 · 0 评论 -
【加密算法】5 种常见的摘要、加密算法
那么上面提到的这些能力,我们都可以利用哪些加密算法来实现呢?咱们接着往下看。加密算法整体上可以分为:不可逆加密、可逆加密。可逆加密又可以分为:对称加密、非对称加密。原创 2023-06-30 17:09:27 · 1798 阅读 · 0 评论 -
【重试】Java 中的 7 种重试机制
如果是基于 Spring 的项目,使用 Spring Retry 的注解方式已经可以解决大部分问题如果项目没有使用 Spring 相关框架,则适合使用 Google guava-retrying:自成体系,使用起来更加灵活强大【转载】Java重试机制Java教程:重试实现高可用一览。原创 2023-06-28 15:05:37 · 12260 阅读 · 5 评论 -
【异步】Java 的 8 种异步实现方式
异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:发送短信、邮件。调用线程池,推荐等方式是是使用自定义线程池的模式,不推荐直接使用。6、Hutool 的 ThreadUtil。4、Spring 注解。2、Future 异步。在实际项目中, 使用。原创 2023-06-25 15:31:44 · 4787 阅读 · 0 评论 -
【SpringBoot】7 种实现 HTTP 调用的方式
作者在工作中,遇到一些需要调用三方接口的任务,就需要用到 HTTP 调用工具。原创 2023-06-21 10:16:20 · 9888 阅读 · 0 评论 -
【SpringBoot】三种方式,教你读取 jar 包中的 resources 目录下的文件
但部署后,项目是通过打成 jar 包运行的,里面的文件是没有实际路径的(只有相对于项目名的相对路径)。此方法默认也是从 classpath 路径(即:src 或 resources 路径下)下查找文件的,但它的路径前为什么需要加 “/” 呢?此方法默认是从 classpath 路径(即:src 或 resources 路径下)下查找文件的,所以,路径前不需要加 “/”。因为最后肯定是打包部署的,所以掌握针对后者的这种方式来读取文件是很有必要的。这个是跟要读取的文件与当前.class 文件的位置有关。...原创 2022-08-07 14:44:19 · 34803 阅读 · 4 评论 -
【SpringBoot】 启动后执行方法的五种方式
项目初始化完毕后,才会调用方法,提供服务。注意监听的事件,通常是 ApplicationStartedEvent 或者 ApplicationReadyEvent,其他的事件可能无法注入 bean。在项目初始化过程中,就会调用此方法。如果业务逻辑执行很耗时,可能会导致项目启动失败。1、实现 CommandLineRunner 接口。2、实现 ApplicationRunner 接口。5、实现 InitializingBean 接口。项目初始化完毕后,才会调用方法,提供服务。的大小顺序执行,小的先执行。...原创 2022-08-16 14:24:51 · 16095 阅读 · 0 评论 -
【SpringBoot】SpringBoot 读取配置文件中的自定义属性的 5 种方法
SpringBoot 配置文件的格式有两种:yml、properties。有些方法都适用,但有些方法就有针对性了。注解可以用来指定读取某个配置文件,比如指定读取。就是使用 Properites 对象读取。读取配置文件(properties)注入到类中就可以使用它的。方法来获取某个配置项的值了。...原创 2022-08-30 16:25:34 · 3358 阅读 · 0 评论 -
【SpringBoot】三种常见的数据脱敏方案
大家可以根据自己的想法添加其它的脱敏规则(我只想脱敏一部分数据,并指明从哪开始,从哪结束)。要做成可配置多策略的脱敏操作,要不然一个个接口进行脱敏操作,重复的工作量太多。定义数据脱敏注解和数据脱敏逻辑的接口, 在返回类上,对需要进行脱敏的属性加上,并指定对应的脱敏策略操作。4、自定义 AnnotationIntrospector,适配我们自定义注解返回相应的Serializer。由于 Java 8 中新增了许多函数式接口,所以,这里就不需要我们自定义接口了,可以直接使用函数式接口。方案三、自定义注解实现。.原创 2022-09-01 15:31:20 · 9798 阅读 · 3 评论 -
【Thread】线程池的 7 种创建方式及自定义线程池
1. 什么是线程池线程池(ThreadPool)是一种基于池化思想管理和使用线程的机制。它是将多个线程预先存储在一个“池子”内,当有任务出现时可以避免重新创建和销毁线程所带来性能开销,只需要从“池子”内取出相应的线程执行对应的任务即可。使用线程池主要有以下优点:降低资源消耗提高响应速度提高线程的可管理性同时,阿里巴巴在其《Java开发手册》中也强制规定:线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。2. 使用线程池线程池的创建方法总共有 7 种,但总体来说可分为 2 类:原创 2021-11-06 23:34:30 · 28958 阅读 · 2 评论 -
【定时任务】Java 中 8 种定时任务
1、Timer类是 JDK1.3 专门提供的定时器工具,用来在执行指定任务,需要跟TimerTask一起配合使用工作流程:把 任务TimerTask添加到 任务队列TaskQueue中,由异步无限循环任务队列,如果队列不为空,则去执行任务。Timer案例:执行一个定时任务,每隔1秒执行一次,延迟2秒执行所以,阿里巴巴开发者规范中不建议使用它是JDK1.5 版本引进的定时任务,,设计的初衷是为了解决Timer单线程执行,多个任务之间会互相影响的问题。实现了该接口。原创 2023-06-02 16:15:03 · 9394 阅读 · 1 评论