Java
小方编程
这个作者很懒,什么都没留下…
展开
-
【最佳实践】使用 CAS 方式并发插入或更新数据到数据库 2021-08-17
CAS 并发更新或者插入一条数据使用场景Java 核心代码示例MySQL 业务表信息使用场景消费消息队列MQ的消息,持久化到DB时。可能会有并发操作的业务中。Java 核心代码示例import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.RandomUtils;import org.springframework.dao.DuplicateKeyException;import org.springframework原创 2021-08-17 20:31:59 · 1278 阅读 · 2 评论 -
【最佳实践】并发请求微服务接口来加快接口响应速度 2021-08-17
以前使用过的 CountDownLatch 方式CountDownLatch 基本工作原理和使用案例现在使用的 Lambda 方式示例代码:// 定义一个公共的池public static final ForkJoinPool FORK_JOIN_POOL = new ForkJoinPool(Runtime.getRuntime().availableProcessors());public List<RegionInfoDTO> getRegionInfos(原创 2021-08-17 17:55:31 · 391 阅读 · 0 评论 -
单例模式最佳实践 2020-09-10
单例模式维基百科:In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one "single" instance. This is useful when exactly one object is needed to coordinate actions across the system. The .原创 2020-09-10 23:40:15 · 191 阅读 · 0 评论 -
CountDownLatch 基本工作原理和使用案例
定义:一种多功能的同步工具,它允许一个或多个线程等待,直到在其他线程中执行的一组操作完成为止。字面可以翻译为“倒计时锁存器”。功能:使用给定的计数初始化CountDownLatch。由于countCount方法的调用,直到当前计数达到零为止,await方法将阻塞,此后所有释放的线程将被释放,并且任何随后的await调用将立即返回。这是一种一次性现象-无法重置计数。如果需要用于重置计数的版本,请...原创 2020-02-28 18:48:12 · 708 阅读 · 0 评论 -
给一个大的 List 分区(根据给定的最大子列表Size均衡的分割出相应的子List)
核心思想:就是计算出相对均等的桶大小,然后利用Guava的Lists.partition()方法来分区。应用场景:请求的接口只允许一次请求1000个数据,而实际上要请求的数据超过1000,此时就可以利用次方法先分割;然后,再利用多线程和CountDownLatch工具来并发获取数据,从而提高响应速度。好了,话不多说,请看代码:import com.google.common.co...原创 2020-02-27 18:27:00 · 214 阅读 · 0 评论 -
超实用的SpringBoot中全局异常处理器(供参考)
import com.xxx.exception.CodingCloudException;import com.xxx.exception.ResourceNotFoundException;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.apache.com...原创 2020-02-06 19:05:38 · 569 阅读 · 0 评论 -
什么是 Servlet 容器?
目录1、什么是 Web 服务器?2、什么是 Servlet 容器?3、什么是 Servlet?4、Servlet 容器和 Web 服务器如何处理一个请求的?5、JVM 的作用我们简单的谈一谈关于Web服务器,Servlet 容器及其与JVM 的关系。其实Servlet 容器只不过是一个 Java 程序。1、什么是 Web 服务器?想要了解什么是 Servl...翻译 2019-04-30 23:10:08 · 18735 阅读 · 0 评论 -
Linux 服务器上如何通过 Shell 脚本一键部署 SpringBoot 应用?
下面的脚本适用于在Linux环境下,部署Java可执行jar包。需要对应的修改环境相关的参数,比如代码路径、部署路径、日志输出位置等。记得执行 chmod +x restart_server.sh 来让脚本可执行。#! /bin/shexport JAVA_HOME=$JAVA_11_HOMEhome_path=/home/workgit_branch=masterserver_p...原创 2019-05-19 15:49:44 · 905 阅读 · 0 评论