
java
文章平均质量分 61
山闻愚
学无止境,持之以恒
展开
-
Spring boot 3.3.4 + Spring Security 6.3.3 + Spring Authorization Server 1.3.2自定义密码模式
在写这篇文档之前,本人在网上查到很多升级密码模式采用JWT令牌格式,但并不符合本人想要的要求。主要有两点:一、用户登出就要撤销令牌,但JWT并不能立即失效,必须在有效期之后自动失效。虽然可以通过黑名单机制(比如用redis保存撤销的令牌)达到同样的效果,但这样授权服务器和资源服务器都要访问到黑名单,这样也就失去了JWT令牌可以本地验证的优势。二、资源服务器可以本地验证JWT令牌,不需要查询授权服务器,因此也不能实时感知到用户权限的变化。原创 2025-03-31 11:33:58 · 397 阅读 · 0 评论 -
elasticsearch + spring boot 配置
目录首先引入elasticsearch依赖操作elasticsearch有两种方式一、通过elasticsearchclient操作elasticsearch二、通过spring框架操作elasticsearch首先引入elasticsearch依赖<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch<...原创 2022-03-28 15:00:27 · 4787 阅读 · 1 评论 -
JAVA8 Supplier<T> 接口
Supplier表示结果的提供者,不接受输入参数,只返回结果,是JDK 1.8 新增加的函数式接口Supplier接口非常简单,只有一个get方法,只要实现这个接口的类都可以成为提供者。@FunctionalInterfacepublic interface Supplier<T> { T get();}这么简单的方法有什么用呢?只要类似供应的场景就可以使用到。比如:榨汁机,只要供应原料,可以榨出想要的汁。/** * 榨汁机 */public class原创 2021-08-24 11:45:35 · 841 阅读 · 0 评论 -
JAVA8 Function<T,R> 和 BiFunction<T,U,R> 接口
Function是名字一般是一个函数接口,是JDK 1.8 新增加的函数式接口。public interface Function<T, R> { /** * 将此函数应用于给定参数 * 真正执行函数接口的方法 */ R apply(T t); /** * 函数链,before执行的结果做根函数为参数 */ default <V> Function<V, R> compose.原创 2021-08-11 09:36:47 · 2462 阅读 · 3 评论 -
JAVA8 Consumer<T> 和 BiConsumer<T,U> 接口
Consumer是一个消费队列接口。这个接口,接收一个泛型的参数T,然后调用accept。 Consumer<Integer> consumer = x -> { int a = x + 2; System.out.println(a);// 12 }; consumer.accept(10);为什么说是消费队列接口呢?看例子: Consumer<Integer> consumer1 = x ->原创 2021-08-06 10:09:14 · 1289 阅读 · 0 评论 -
Lombok使用详解
目录一、基本介绍1,Lombok 介绍2,插件安装3,添加依赖二、var 与 val三、Lombok 注解概览1,@Setter 和 @Getter2,@Getter(lazy=true)3,@ToString4,@EqualsAndHashCode原文出自:www.hangge.com转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2492.html5,@NoArgsConstructor6...转载 2021-05-22 11:02:30 · 982 阅读 · 0 评论 -
一张表了解JAVA容器类
对象 存储结构 线程同步 存储结构 默认初始容量 扩容 装载因子 ArrayList 数组 10 原容量+(原容量>>1) 否 Vector 数组 10 默认增加一倍; 可指定扩容数量; 是 LinkedList 双向链表 否 HashMap TreeMap ...原创 2021-04-20 10:19:58 · 110 阅读 · 1 评论 -
如何避免冗长 if-else / switch 分支判断
java编码技巧原创 2021-03-11 10:14:19 · 200 阅读 · 0 评论 -
spring boot 事务 Transactional 笔记
最近发现事务不会回滚,查了原因总结一下原因:1、@Transactional 没注解在public方法上2、抛出的异常不是RuntimeException类异常,而@Transactional上没有注明rollbackFor哪一类异常。解决方法可以是@Transactional( rollbackFor = Exception.class)3、数据库存储引擎不支持回滚以mysql为例,数据库引擎是MyISAM不回滚。把引擎改为InnoDB会回滚。-- 查看库的存储引擎show e.原创 2020-05-30 10:42:05 · 161 阅读 · 0 评论 -
全面解读Java NIO工作原理
全面解读Java NIO工作原理本文简介: JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的。您还将了解只能通过 NIO 来完成的工作,如异步 I/O 和直接缓转载 2017-05-15 14:41:16 · 508 阅读 · 0 评论 -
JVisaulVM远程监控配置
VisaulVM远程监控配置目录配置Jstatd在服务器的JAVA_HOME/bin目录添加 jstatd 的 security policy 文件。1、创建jstatd.all.policy文件,文件名可以改,但.policy扩展名不能改。内容:grant codebase "file:${java.home}/../lib/tools.jar" {permi原创 2016-11-25 17:24:37 · 836 阅读 · 0 评论 -
《实战Java虚拟机:JVM故障诊断与性能优化》
《实战Java虚拟机:JVM故障诊断与性能优化》里面有介绍如何JVM故障诊断与性能优化,非常详细,记下以备忘记。http://book.51cto.com/art/201504/472189.htm转载 2016-11-22 20:07:38 · 1898 阅读 · 0 评论 -
Java NIO
原文http://www.iteye.com/magazines/132-Java-NIOJava NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。感谢并发编程网的翻译和投递。 (关注ITeye官微,随时随地查看最新开发资讯、技术文章。) Java转载 2016-11-19 20:00:56 · 259 阅读 · 0 评论 -
webservice 超简单入门教程
!-- Title:WebService 超简单入门教程 Author:Lovingshu Date:2012/09/21 Description:Teachyou how to use WebService with java easily!-->写在前面的话: 当两个人碰面后,产生了好感转载 2015-04-09 16:49:04 · 3932 阅读 · 0 评论 -
web.xml 配置 Error Page
原文:http://xiaoxuejie.iteye.com/blog/1338609一:Tomcat Error Page配置如果JSP页面出现异常,就会转到tomcat自动的那个异常页面,页面不怎么友好。jsp标准中提供了error page的配置,可以自己定义当出现错误时跳转到哪个页面。这个配置在web.xml里面进行配置,下面一步步来实现自定义错误页面。1.首先,在转载 2014-08-04 23:46:08 · 1103 阅读 · 0 评论 -
关于java.lang.IllegalStateException: getOutputStream() has already been called for this response求解
情况:控制台打出java.lang.IllegalStateException: getOutputStream() has already been called for this response,页原创 2014-05-29 12:20:51 · 3510 阅读 · 0 评论 -
spring security3.2 总结
xmlns:sec="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans原创 2014-08-04 00:34:59 · 1207 阅读 · 0 评论 -
HTTP Session 会话超时周期的设置方法 和 判断方法
一、在web.xml 中:x 二、程序中:HttpSession session=new HttpSession ();session.setmaxinactiveinternal(int t); //t为秒 以上两种方法都可以解决问题,第一种方法是将超时值用于特定的servlet,针对每一个Session进行单独设置,而第二种方法是应用于整个web原创 2014-07-21 16:53:26 · 6809 阅读 · 0 评论