java
文章平均质量分 51
枫林语
这个作者很懒,什么都没留下…
展开
-
如何保证接口的幂等性?常见的实现方案有哪些?
什么是幂等性幂等性是系统服务对外一种承诺,承诺只要调用接口成功,外部多次调用对系统的影响是一致的。声明为幂等的服务会认为外部调用失败是常态,并且失败之后必然会有重试。如何保证幂等使用数据库实现幂等性 使用 JVM 锁实现幂等性 使用分布式锁实现幂等性一. 数据库实现数据库实现幂等性的方案有四个:1.状态机幂等如果业务上需要修改订单状态,例如订单状态有待支付,支付中,支付成功,支付失败。设计时最好只支持状态的单向改变。这样在更新的时候就可以加上条件,多次调用也只会执行一次。例如想原创 2021-08-04 15:15:58 · 561 阅读 · 0 评论 -
IntelliJ IDEA根据wsdl生成WebServices客户端代码 Sprinng Boot
最近项目要用到一个发票开票接口,但是对方居然用的是webService的方式调用,而我们用的是SpringBootIDEA在2019的版本后就没有显示的集成WebService了,导致找了很多种方式,都没有很详细的说明白,具体要 怎么处理,刚好弄清楚,写个笔记记录下我的IDEA版本2020.1, JDK1.8 项目环境:Springboot1.新建module,选择Apach Axis2.点击下一步,输入项目名称,后点完成3.出现如下的界面,勾选需要生成的代码,这里要注.原创 2021-08-04 15:11:24 · 4297 阅读 · 1 评论 -
Java 根据文件目录批量替换替换文件格式
import org.apache.commons.io.IOUtils;import org.apache.commons.lang3.StringUtils;import java.io.*;public class FileUtils { public static void main(String args[]){// formatFile("D:\...原创 2020-03-12 10:19:22 · 339 阅读 · 0 评论 -
BlockingQueue(阻塞队列)详解
一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。二. 认识BlockingQueue 阻塞队列,顾名思义,首先它是一个队列,而一个...原创 2019-08-14 17:31:23 · 156 阅读 · 0 评论 -
BigDecimal.setScale用法总结
1.BigDecimal num1 = new BigDecimal(2.225667);//这种写法不允许,会造成精度损失2.BigDecimal num2 = new BigDecimal(2);//这种写法是可以的3.BigDecimal num = new BigDecimal("2.225667");//一般都会这样写最好4.int count = num.scale...转载 2019-06-25 11:01:32 · 300 阅读 · 0 评论 -
List 集合排序 降序&升序
/**先排序,降序 然后取前10 b1在后是升序*/Collections.sort(portraitReportVos, new Comparator<PortraitReportVo>() { public int compare(PortraitReportVo o1, PortraitReportVo o2){ BigDecimal b1 = o1....原创 2019-06-20 11:17:52 · 6213 阅读 · 0 评论 -
Springboot 文件传输大小设置
设置上传下载文件大小根据不同版本,对应的设置值不一样Spring Boot 1.3.x and earliermultipart.maxFileSizemultipart.maxRequestSizeSpring Boot 1.4.x and 1.5.xspring.http.multipart.maxFileSizespring.http.multipart.max...原创 2019-06-10 11:07:55 · 1036 阅读 · 0 评论 -
根据字段配置 动态获取对象属性
/**3.根据资金方字段配置展示对应的字段*/ /**3.1获取资金方字段配置*/ ClearProofFieldConfig clearProofFieldConfig = clearProofFieldConfigManager.selectByLoanChannelId(clearProofBatch.getLoanChannelId())...原创 2019-06-03 21:55:31 · 737 阅读 · 0 评论 -
Springboot集成Spring session利用redis来实现session共享
1.在spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring session支持,配置如下:@SpringBootApplication@EnableRedisHttpSessionpublic class DemoApplication { public static void main(String[] args) {...原创 2018-12-18 17:33:57 · 366 阅读 · 1 评论 -
由浅入深理解Raft协议
原文出处:https://www.sohu.com/a/198360462_7127630 - Raft协议和Paxos的因缘读过Raft论文《In Search of an Understandable Consensus Algorithm》的同学都知道,Raft是因为Paxos而产生的。Paxos协议是出了名的难懂,而且不够详细,紧紧依据Paxos这篇论文开发出可用的系统是非常困难的...转载 2018-12-20 11:36:56 · 256 阅读 · 0 评论 -
linux快速安装JDK1.8
1.去Oracle 官网下载自己对应的版本可以用wget 的方式直接下载,不知道啥原因我的linux下载不了所以我直接在windows10下载好wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz2.拷...原创 2018-11-28 14:12:06 · 3952 阅读 · 0 评论 -
mybatis-plus笔记
1.添加pom文件添加maven依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.1</version></depende原创 2018-11-27 14:17:22 · 635 阅读 · 0 评论 -
SpringMVC工作原理
SpringMVC的工作原理图: SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServ...原创 2018-11-20 16:48:05 · 79 阅读 · 0 评论 -
深入理解JVM—JVM内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子...转载 2018-10-31 11:47:46 · 185 阅读 · 0 评论 -
Java总结篇系列:Java多线程(三)
本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题。一.一个典型的Java线程安全例子public class ThreadTest { public static void main(String[] args) { Account account = new Account("123456", 1000); DrawMoney...转载 2018-09-18 22:48:57 · 97 阅读 · 0 评论 -
Java总结篇系列:Java多线程(二)
四.Java多线程的阻塞状态与线程控制上文已经提到Java阻塞的几种具体类型。下面分别看下引起Java线程阻塞的主要方法。1.join()join —— 让一个线程等待另一个线程完成才继续执行。如A线程线程执行体中调用B线程的join()方法,则A线程被阻塞,知道B线程执行完为止,A才能得以继续执行。public class ThreadTest { public st...转载 2018-09-18 21:39:39 · 109 阅读 · 0 评论 -
Java总结篇系列:Java多线程(一)
多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的。一.线程的生命周期及五种基本状态关于Java中线程的生命周期,首先看一下下面这张较为经典的图:上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括:Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thre...原创 2018-09-18 17:42:00 · 141 阅读 · 1 评论