![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 57
猥琐的刚
猥琐
展开
-
【CompletableFuture java8 使用场景一】
有一个业务场景如下:对外提供一个查询接口,该接口接收一个指定的超时时间参数 timeout,接口并发执行两个方法,方法一为查询缓存,方法二为http接口查询,http接口的超时时间为timeout。如果在timeout时间内方法二有返回结果,则接口返回方法二的查询结果。如果方法二在指定的超时内没有返回结果,则查询接口返回方法一的执行结果。同时如果方法二如果超时了,需要异步等待300ms,尽可能获取方法二的执行结果,如果有结果就写一条日志,否则丢弃中断http请求。原创 2024-02-20 17:07:33 · 364 阅读 · 0 评论 -
【Spring Boot 使用Filter统一处理请求数据转换】
定义一个实现javax.servlet.Filter接口的类。在这个类中,你将覆写doFilter方法以便在请求到达Controller之前对数据进行预处理。原创 2024-02-20 14:43:43 · 1304 阅读 · 0 评论 -
Spring Boot动态注册/删除http资源路径的方法
springboot 动态注册与删除URL原创 2022-08-11 15:28:44 · 930 阅读 · 0 评论 -
idea 使用远程debug,调试线上程序
idea 使用远程debug,调试线上程序线上开启debug模式RemoteDebug过程是在两个不同的VM实例间进行,需要一个通信方式——socket,因此需要端口设置。要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数:-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port},其中${debug_port}是用户自定义的,为服务端debug端口。 JVM_ARGS="-原创 2021-05-27 15:29:19 · 326 阅读 · 0 评论 -
HTTPS双向认证(Mutual TLS authentication)
HTTPS双向认证(Mutual TLS authentication)双向认证,顾名思义,客户端和服务器端都需要验证对方的身份,在建立Https连接的过程中,握手的流程比单向认证多了几步。单向认证的过程,客户端从服务器端下载服务器端公钥证书进行验证,然后建立安全通信通道。双向通信流程,客户端除了需要从服务器端下载服务器的公钥证书进行验证外,还需要把客户端的公钥证书上传到服务器端给服务器端进行验证,等双方都认证通过了,才开始建立安全通信通道进行数据传输。原理单向认证流程中,服务器端保存着公钥证书和私钥转载 2021-03-10 21:20:00 · 9148 阅读 · 0 评论 -
IDEA 查找某个 jar 包是如何被引入的
IDEA 查找某个 jar 包是如何被引入的方法一我们借助 IDEA 的 maven 工具,在 maven 栏右键项目模块,选择 show Dependencies或 Ctrl + Shift + Alt + U,这时候会展示当前模块的 jar 包依赖图,如下:我们 Ctrl + F 查询关心的jar,然后一层一层往上找出依赖方法二使用命令的方式查找mvn dependency:tree -Dverbose -Dincludes=com.fasterxml.jackson.core:jacks原创 2021-02-19 16:52:56 · 24853 阅读 · 2 评论 -
Spring boot 调用 shell 命令
Spring boot 调用 shell 命令我们将“执行命令行”封装成一个Spring中的service,入参是命令,当执行顺利时返回标准输入流中的结果,当执行失败记录日志或抛出异常。并使用线程池来用线程读取流中的数据。/** * @author jiezhigang * @title: * @projectName assets * @description: 定义Command Service接口 * @date 2021/1/18 */public interface Comma原创 2021-01-18 15:12:00 · 5570 阅读 · 3 评论 -
Spring boot 集成 knife
Spring boot 集成 knife添加依赖开启配置添加依赖<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <!--在引用时请在maven中央仓库搜索最新版本号--> <version>2.0.4</version><原创 2020-11-11 19:01:12 · 541 阅读 · 0 评论 -
Spring boot 触发参数验证
Spring boot 参数验证代码配置controllervo验证util代码配置controllerimport javax.validation.Valid;import java.util.List;import java.util.Map;@Slf4j@RestControllerpublic class VenderInfoController { // 自动验证 @PostMapping(value = "/assets/venders") public V原创 2020-11-11 16:32:58 · 277 阅读 · 0 评论 -
常用正则表达式
常用正则表达式大全包括校验数字、字符、一些特殊的需求等等校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\原创 2020-11-05 14:27:37 · 150 阅读 · 0 评论 -
SpringBoot 异步调用方法并接收返回值
项目中肯定会遇到异步调用其他方法的场景,比如有个计算过程,需要计算很多个指标的值,但是每个指标计算的效率快慢不同,如果采用同步执行的方式,运行这一个过程的时间是计算所有指标的时间之和。比如:方法A:计算指标x,指标y,指标z的值,其中计算指标x需要1s,计算指标y需要2s,指标z需要3s。最终执行完方法A就是5s。现在用异步的方式优化一下方法A异步调用方法B,方法C,方法D,方法B,方...转载 2019-08-15 17:35:55 · 1920 阅读 · 0 评论 -
Java线程之异步回调(Callback)
Java线程之异步回调Callback介绍callbackFuture介绍有时候执行一个任务需要很长时间,单线程下线程会处于阻塞状态。这个时候我们会考虑一种非阻塞的处理模式。非阻塞任务在任何编程语言里都必不可少,Java也不例外。多线程就是一个很好的解决办法。 但是多线程是异步处理,异步就意味着不知道处理结果,如果我们需要知道处理结果的时候应该怎么办呢?callback回调一般是异步处理的...原创 2019-08-15 17:26:02 · 4162 阅读 · 0 评论 -
Java 读写Properties配置文件
Java 读写Properties配置文件1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。2.Properties中的主要方法(1)load(InputStream inStream)...原创 2018-12-12 14:55:24 · 117 阅读 · 1 评论