随笔分类 - Java
大叔也学学java,跟跟风...
摘要:Refresh_token是在access_token过期之后,用来换新的access_token的,有了Refresh_token之后,用户可以在很长一段时间不需要重新登录,这对于用户体验是有好处的;RequiredAction是一种登录阶段的必选行为,当一个用户被某个RequiredAction
阅读全文
摘要:一 单字段和多字段重写hashcode 在 Java 中,重写 hashCode 方法的场景通常与对象的哈希值计算有关,特别是在使用哈希表(如 HashMap, HashSet 等)时。下面是你提供的两种 hashCode 实现的具体使用场景分析: 1. 第一种实现 @Override public
阅读全文
摘要:本实例将通过keycloak社区登录实现微信二维码的登录,并且二微码不是keycloak动态生成,而是通过微信提供的js生成的,在页面上直接输出的方式实现的。 动态state 在Keycloak中使用微信二维码登录时,state参数确实是由后端生成的,并且用于确保登录过程的安全性,防止CSRF攻击等
阅读全文
摘要:原理 PageHelper是一个用于MyBatis的分页插件,pagehelper-spring-boot-starter是其在Spring Boot中的集成组件。下面简要介绍PageHelper的分页原理: PageHelper的分页原理 拦截器机制:PageHelper通过MyBatis的拦截器
阅读全文
摘要:相关文章 springboot~代码风格统计spring-javaformat-maven-plugin插件 springboot~spring-javaformat插件惹的祸 说明 在项目中,我们可以通过安装maven插件,spring-javaformat来达到代码统一的目的,而在idea中,为
阅读全文
摘要:javax.validation和jakarta.validation都是用于Java中进行数据验证(validation)的相关API,它们提供了一套标准的验证框架,用于验证Java对象的属性是否符合指定的约束条件。这两个API的作用类似,只是在Java EE平台的演进过程中发生了一些变化。 ja
阅读全文
摘要:将多个第三方包封装成一个项目后,如果你的目的是让其他开发人员可以直接引用这些依赖,一般来说有两种常见的方式: 打成JAR包:将封装好的项目编译打包成JAR文件,其他开发人员可以将这个JAR文件添加到他们的项目中,并在项目的构建工具(比如Maven)中配置该JAR作为依赖。这样做的好处是简单直接,其他
阅读全文
摘要:在Spring中,CompletableFuture通常用于异步编程,可以方便地处理异步任务的执行和结果处理,CompletableFuture 是 Java 8 引入的一个类,用于支持异步编程和并发操作。它基于 Future 和 CompletionStage 接口,提供了丰富的方法来处理异步任务
阅读全文
摘要:这个文章主要介绍一下@AutoConfigureAfter在spring框架中的作用,在使用过程中,很多开发人员在使用它的时候都出现了问题,问题比较多的就是它们的注册顺序总不是我们预期的,下面介绍一下正常的使用方法。 @AutoConfigureAfter用在配置类上面,即需要在@Configura
阅读全文
摘要:GraalVM GraalVM 是一种高性能、通用的虚拟机,由 Oracle 公司开发。它支持多种编程语言(如 Java、JavaScript、Python 等),并提供了即时编译器、AOT 编译器等功能。GraalVM 的主要特点包括: 高性能:GraalVM 提供了优秀的即时编译器,能够将程序在
阅读全文
摘要:滑动窗口限流 滑动窗口限流是一种常用的限流算法,通过维护一个固定大小的窗口,在单位时间内允许通过的请求次数不超过设定的阈值。具体来说,滑动窗口限流算法通常包括以下几个步骤: 初始化:设置窗口大小、请求次数阈值和时间间隔。 维护窗口:将请求按照时间顺序放入窗口中,并保持窗口内请求数量不超过阈值。 检查
阅读全文
摘要:redis配置文件开启键过期 # The "notify-keyspace-events" takes as argument a string that is composed # of zero or multiple characters. The empty string means tha
阅读全文
摘要:在keycloak中,我们在进行brower浏览器的表单认证时,一般在跳到本页面时,URL上会有redirect_uri这种参数,用来告诉keycloak,在认证成功后的跳转地址,你在表单认证控制器中,可以通过context.getHttpRequest().getUri().getQueryPar
阅读全文
摘要:mybatis-plus中,如果数据表字段类型与java实体字段类型不一样,这时就需要做类型映射与转换了,我们一般可以实现TypeHandler接口,或者继承抽象类BaseTypeHandler,我们下面举例来说明一下它的使用方法。 场景 数据表里字段是varchar,java里是List集合,例如
阅读全文
摘要:com.auth0.jwk组织下面的jwks-rsa包,主要实现的是通过公钥对jwt的签名进行验证,在这个包中,它使用了包装器的设计模式,对默认的jwks提供者添加了一缓存的支持,通过建立一个GuavaCachedJwkProvider类,传入一个默认的UrlJwkProvider来将这个Provi
阅读全文
摘要:对于实体中包含有公共字段,像create_at,create_time,update_at,update_time来说,我们没有必要在每个实体的crud操作中复制同样的代码,这样代码的味道很坏,我们应该使用mybatis的拦截器机制,将公共字段统一处理;当然mybatis-puls在实现上更加优雅,
阅读全文
摘要:我们一般在底层写方法时,如果方法显示throws异常,那么在调用时,也需要将这个异常throws出来,例如 public RetOps<T> assertCode(Integer expect, Function<? super R<T>, ? extends Exception> func) th
阅读全文
摘要:在 Java 中,LocalDateTime、Date 和 Instant 分别代表了不同的日期时间类型,它们之间有一些区别和适用场景。 Date: java.util.Date 是 Java 早期的日期时间类,它包含了日期和时间信息,但是在设计上存在一些问题,因此并不推荐在新的代码中使用。 Dat
阅读全文
摘要:日志本地化,对于每个应用来说都是必须的,最起码第一时间日志是需要本地化的,然后从本地化的日志中再进行推送,例如通过fluentd将日志推到es里,通过kibana工具进行可视化分析。 日志文件大小限制 对于把日志持久化到磁盘,你需要设置它的占用空间,logback提供了保存文件大小和历史文件数量的配
阅读全文
摘要:shardingsphere已经很方便的被springboot集成了,你只要引入sharding-jdbc-spring-boot-starter这个包就可以了,而如果是原生java的话,你就需要自己去实现了,主要是重新定义数据源,定义规则等问题,本文主要介绍原生环境下的shardingsphere
阅读全文